自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MarmotCoder

为了想做的事,去做不想做的事。

  • 博客(74)
  • 问答 (1)
  • 收藏
  • 关注

原创 Redis如何使用Lua脚本

主版本源码: 基于Gradle构建https://github.com/apereo/casoverlay版本源码: 基于Maven和Gradle构建https://github.com/apereo/cas-overlay-template主版本是用gradle编译的,有很多源码很多模块,我们需要在这个源码上进行修改配置,这就非常混乱了.其官方提供了一个无侵入式的一套来设计cas...

2020-05-03 00:59:10 196

原创 机器学习入门-笔记(补充中)

简介ConcurrenHashMap 在扩容过程中主要使用 sizeCtl 和 transferIndex 这两个属性来协调多线程之间的并发操作,并且在扩容过程中大部分数据依旧可以做到访问不阻塞,具体是如何实现的,请继续 。说明:该源码来自于 jdk_1.8.0_162 版本 。特别说明:不想看源码可直接跳到后面直接看图解 。一、sizeCtl 属性在...

2020-05-03 00:58:45 595

原创 常见的分布式事务及优缺点

网络协议应用层-浏览器的HTTP协议,用于传输文件的FTP协议,用于Email的IMAP协议 传输层-解析端口号TCP协议 UDP协议 网络层-IPV4协议 或者 IPV6协议 链路层-通过“以太网协议” 对01二进制数据串进行分割为一个个的帧,帧中有收信地址(Source, SRC)和送信地址(Destination, DST),还有能够探测错误的校验序列(Frame Check S...

2019-03-21 20:17:02 727

原创 IDEA-参数设置 项目JVM内存调整

mac下的ideaidea 的右下角有当前内存和总内存的占比不显示的话需要勾选如下​​​​​​那么这个750是怎么设置的呢?让我们打开访达,找到idea打开如下文件# 文件内容如下,我们看到配置里有750,如果默认值设置的太小,那你使用idea跑稍微大点的项目,你的电脑就会像拖拉机一样,嗡嗡嗡的响。我们可以根据自己电脑的配置适当调大一点# 最小内存-X...

2019-01-16 18:15:55 6323

原创 MySQL锁及MVCC的原理分析

MySQL中的数据用不同的技术存储在文件或内存中。每种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。这些不同的技术称之为存储引擎。通过选择不同的存储引擎,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。引擎有InnoDB,MyIsam,Memory,Mrg_Myisam,Blackhole....(SHOWENGINES-查看改数据库支持的搜索引擎...

2019-01-14 16:30:38 261

原创 Spring 参数校验 @Valid注解

@Null 限制只能为null@NotNull 限制必须不为null@AssertFalse 限制必须为false@AssertTrue 限制必须为true@DecimalMax(value) 限制必须为一个不大于指定值的数字@DecimalMin(value) 限制必须为一个不小于指定值的数字@Digits(integer,fraction)...

2019-01-11 19:13:54 542

原创 source 1.6 中不支持 xxx 运算符 (请使用 -source 7 或更高版本以启用 xxx 运算符)

source 1.6 中不支持xxx 运算符 (请使用 -source 7 或更高版本以启用 xxx 运算符)--------------------------------------------------------------------------------------------------------------本机 java 安装SDK是1.8,在 idea里制定工程SD...

2019-01-10 17:51:34 1185

原创 限流策略-令牌桶与漏斗桶的实现

redis 服务端和客户端的安装启动# 产看当前redis版本$ redis-server -v-bash: /usr/local/bin/redis-server: No such file or directory$ redis-cli -v-bash: /usr/local/bin/redis-cli: No such file or directory# 以上可以判断本...

2019-01-08 20:36:31 569

原创 Python学习笔记 读写文件 发送请求等

package com.spring.cloud.test.guava;import com.google.common.base.Charsets;import com.google.common.io.Files;import java.io.File;import java.io.IOException;import java.util.List;/** * 文件读写复...

2019-01-07 15:43:47 622

原创 rocketmq 源码分析 运行 亲测 附图附代码 2018.12

1.rocketmq 源码下载git clone https://github.com/apache/rocketmq.git2. 运行namesrv启动方法 默认端口9876# runorg.apache.rocketmq.namesrv.NamesrvStartup#main# 会报错Please set the ROCKETMQ_HOME variable i...

2018-12-05 15:42:36 651

原创 @Transactional注解的原理

# 网络连接 监听 8080端口$ nc -l 8080# 网络连接 172.22.177.89 8080端口$ nc 172.22.177.89 8080然后两个服务就可以互相通信了

2018-12-04 15:37:35 330

原创 IO NIO Netty 的关系与Demo

1.NameServer集群 提供轻量级的服务发现和路由。 每个 NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展2.Broker集群 每个Broker启动时都会将自己注册到NameServer上,其通过提供轻量级的 Topic 和 Queue 机制来处理消息存储,同时支持推(push)和拉(pull)模式以及主从结构的容...

2018-12-03 20:47:26 518 1

原创 Dubbo 安装学习笔记

可使用docker 进行安装使用在安装完成后访问8080端口进入图形化管理界面 账户密码都是root

2018-12-03 18:01:54 144

原创 Docker搭建zookeeper集群-笔记

关于docker 怎么安装使用,看我之前的博客。直接进入正题:zookeeper 三个默认端口2181:对cline端提供服务3888:选举leader使用2888:集群内机器通讯使用(Leader监听此端口)服务端启动后,进入容器内部 /zookeeper/bin/ 下执行#客户端请求连接服务器./zkCli.sh -timeout 5000 -serv...

2018-12-03 16:29:07 1771

原创 ConcurrenHashMap-源码解析

结构Docker daemon 服务端,作为一个服务进程。提供很多API。我们可以使用API去与服务端通信。但是开放的API很多,用起来比较麻烦。为了简单你可以使用自己的语言封装一个程序来与服务端通信。开发者已经给我们封装好了如下docker client。Docker client 开发者给我们封装的工具,使得与服务端交互非常方便。Virtualbox如果你是Mac OS, ...

2018-11-28 19:41:20 292

原创 kafka的安装即集群部署

more catcat 和 more命令从前向后读取文件,因此在启动时就加载整个文件。功能类似,cat命令是一次性整个文件的内容从上到下显示在屏幕上后 自动退出。more会以一页一页的显示方便使用者逐页阅读,下一页-空白键,上一页-b键,下一行-回车键,退出-按q或者ZZ。less 在查看之前不会加载整个文件。下表是less常用参数less a.txt 打开文件...

2018-11-28 16:10:04 222

原创 多路复用 select epollo的底层实现

为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的 API

2018-11-27 18:04:12 217

原创 ThreadPool-线程池源码分析

优点1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃创建public ThreadPoolExecutor( int corePoolSize, int m...

2018-11-27 17:24:25 194

原创 AQS 与 ConditionObject

安装HomeBrew安装Nginx使用# 安装后配置文件默认在 /usr/local/etc/nginx nginx.conf # 配置文件默认服务地址:访问http://localhost:8080# 检测配置文件内容正确性$ nginx -t# 刷新配置文件$ nginx reload# 产看版本$ nginx -v# 启动 访问http://localh...

2018-11-27 15:21:20 455

原创 HomeBrew - Mac OS 软件包管理工具 安装nginx

Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。不需要自己去下载各种软件编译运行依赖。安装/usr/local/homebrew -e "$(curl -fsSL https://raw.githubusercontent.com/Hom...

2018-11-27 14:52:57 671

原创 Eureka的安装使用及集群

操作# 拉取最新代码$ git pull# 修改完代码,还未add 到缓存区# 撤销上一步$ git checkout .# 将修改的代码放入 暂存区 $ git add .# 撤销上一步操作$ git reset HEAD# 提交暂存取的代码并且增加注释 $ git commit -m "修改了XXX"# 撤销上一步操作$ git reset --sof...

2018-11-23 20:26:10 1165

原创 Zookeeper的安装及使用

1.1<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.46.sec01</version></dependency>

2018-11-21 14:00:23 321

原创 阻塞队列的实现原理

现在貌似大多数网站用户认证都是基于 session 的,即在服务端生成用户相关的 session 数据,而发给客户端 sesssion_id 存放到 cookie 中,这样用客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户认证。这种认证方式,可以更好的在服务端对会话进行控制,安全性比较高(session_id 随机),但是服务端需要存储 ses...

2018-11-01 16:18:41 508

原创 分布式登录 JWT SSO OAuth2 SpringSecurity

一篇文章告诉你JWT的实现原理传统的 session 流程浏览器发起请求登陆 服务端验证身份,生成身份验证信息,存储在服务端,并且告诉浏览器写入 Cookie 浏览器发起请求获取用户资料,此时 Cookie 内容也跟随这发送到服务器 服务器发现 Cookie 中有身份信息,验明正身 服务器返回该用户的用户资料JWT 流程浏览器发起请求登陆 服务端验证身份,...

2018-09-14 19:13:42 1704

原创 netstat命令 nc命令 使用详解

2018-09-06 21:23:00 792

原创 二进制 原码 补码 反码 符号位 正负数 数据类型

1.对一个二进制数1100111111000111 转化为十进制是多少?如果最高位是符号位转换成十进制为-12345,而如果最高位不是符号位则为53191如何怎么判断1100111111000111最高位是否是符号位呢?不能判断 数据本无型,原本在人心.你想把它当做有符号就有符号,你想把它当做无符号就是无符号.它本身并没有类型区别.2.对于 _ _...

2018-08-23 14:48:22 1679

原创 Elasticsearch的连接方式+三种客户端

所有语言所有语言可以使用RESTful API 通过端口9200和 Elasticsearch 进行通信,你可以用你最喜爱的 web 客户端访问 Elasticsearch 。事实上,正如你所看到的,你甚至可以使用curl命令来和 Elasticsearch 交互。1:HTTP客户端(Rest Client)HTTP在大多数编程语言中得到很好的支持,这是连接到Elas...

2018-08-20 15:18:33 31014 4

原创 Redis 数据结构源码分析 跳表 哈希表 压缩表

java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。JVM内存模型可以分为两个部分,如下图所示,堆和方法区是所有线程共有的,而虚拟机栈,本地方法栈和程序计数器则是线程私有的。下面我们就来分析一下这些不同区域的作用。...

2018-07-31 14:20:03 303

原创 Redis 高可用集群

# 查看服务器的信息127.0.0.1:6379> info memory# Memoryused_memory:1038352used_memory_human:1014.02Kused_memory_rss:1417216used_memory_rss_human:1.35Mmem_fragmentation_ratio:1.41......used_mem...

2018-07-23 17:20:03 275

原创 ES中的Query与Filter的区别

Elasticsearch支持很多查询方式,其中一种就是DSL,它是把请求写在JSON里面,然后进行相关的查询。Query DSL 与 Filter DSLDSL查询语言中存在两种:查询DSL(query DSL)和过滤DSL(filter DSL)。它们两个的区别如下图:query DSL在查询上下文中,查询会回答这个问题——“这个文档匹不匹配这个查询,它的相关度高么...

2018-07-04 10:28:10 39476 1

原创 Voliate的底层原理

1. 下载并配置环境变量配置环境变量之前 只能在这个目录下才能运行配置了之后 所有路径都能运行 就像java一样查看mvnen版本 "mvn -v"2. 配置本地仓库配置本地仓库3. 集成idea或eclipse* 私服的概念nexus 是一个带有界面的私服仓库 下载之后 安装到本地 默认端口...

2018-03-09 11:14:57 1749

原创 synchronized 锁的底层原理

版权声明:本文由施勇原创,转载请注明作者和出处! http://blog.csdn.net/shiyong1949/article/details/52643711log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。ALL最低等级的,用于打开所有日志记录。TRACE...

2018-03-08 11:27:27 24295 4

原创 JVM垃圾回收与各类收集器

java的日志系统繁杂,今天趁着解决日志系统冲突的过程,顺带学习一下java的日志系统并做个记录日志演化历史最开始出现的是log4j,也是应用最广泛的日志系统,成为了目前java日志系统事实上的标准,一切都是美好的 但java的开发主体sun公司认为自己才是正统,为了干掉log4j在jdk1.4中增加了jul(因为在java.util.logging包下)日志的实现,造成了目前开发...

2018-03-02 14:14:12 482

原创 Springboot集成SpringSecurity 附代码

之前做过公司的SSO接入,也网上找了很多博客,结合自己的理解 梳理了一些,文章有点长,希望可以有耐心的看下去。一、Spring security 是什么?Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversi...

2018-02-12 17:37:06 46746 49

原创 Elasticsearch的安装与使用

自己在测试时候遇到的问题这里都写了,真的是一模一样,一篇好文!1、外网访问9200端口系统centos7.0安装elasticsearch后本机可以访问127.0.0.1:9200,但不能访问【公网IP:9200】如何解决?修改配置文件 config/elasticsearch.yml network.host: 0.0.0.0 http.port: 9200...

2018-01-23 12:07:47 2870 1

原创 ThreadLocal源码分析

JDK安装注意:rpm与软件相关命令 相当于window下的软件助手 管理软件步骤:查看当前Linux系统是否已经安装java输入 rpm -qa | grep java在这里可以看到我已经装过JDK了 那么需要卸载一下 装自己的JDK卸载两个openJDK输入rpm -e --nodeps 要卸载的软件卸载后再次 查看一下 确认卸载干净了上传...

2018-01-19 16:58:08 684

原创 Maven pom文件内容配置详解

原创整理不易,转载请注明出处:史上最全的maven pom.xml文件教程详解[xml] view plain copyprint? <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...

2017-12-28 15:26:31 489

原创 Mysq日志 binlog redolog undolog

SELECT * FROM `table` WHERE `from` = 'abc' ;当你的数据表的表名(上面的表名是table)或者字段名字(上面的字段名是from)是关键字的时候,这时就会有冲突了,mysql的转译字符是 ` ` 当出现冲突时候就必须使用转移字符了,没有冲突可以用 但是没有必要开启日志: 该日志包含了 对数据库的所有增删改查操作// 设置...

2017-12-27 15:07:26 3299

原创 CAS锁是什么?

深度优先搜索算法(Depth First Search)DFS是搜索算法的一种。它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。如右

2017-12-10 15:13:03 1119

原创 进程 线程 协程 单核cpu 多核cpu

一个电脑只有一个CPU。一个CPU可以有多个核心。最初一个核心只处理一个线程。单核单线程、双核双线程。但是这会造成资源浪费,打一个比方,一个核心相当于一家超市,A管进货,B管摆货,C管收银。但是现在没有货可摆的时候,B是不是可以去当收银员呢?这就出现了超线程技术,单核双线程,双核四线程。就是把一个核心模拟成两个核心,在一个核心一些资源闲着的时候,可以利用起来,当成一个核心来用。在...

2017-11-08 21:44:21 431

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除