自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanbin

技术团队Leader没有过硬的技术,谈何管理技术团队

  • 博客(97)
  • 收藏
  • 关注

原创 Intellij IDEA 2020.3 配置

文章目录说明设置项设置统一UTF-8编码设置默认JDK设置eclipse 代码格式化xml 文件设置统一的java类文件头注释工程包路径展示 , Flatten Package快捷键设置成eclipse快捷键修改alt + / 的代码提示快捷键降级idea的代码检查设置配置mavenmaven编译启动控制台中文乱码设置设置GIT设置SVN设置自动编译编辑器设置批量import包设置run程序不检查全部类的错误说明这个版本已经取消了defalut settings指定成默认配置的选项,所以配置都是在se

2020-12-30 09:20:23 8517 9

原创 SpringIOC-初始化-LoadBeanDefinitions

文章目录程序入口解析文件的核心类执行流程详细流程解析从refreshBeanFactory --> loadBeanDefinitions1. 从ClassPathXmlApplicationContext入口,传入配置文件地址,供spring解析2. ClassPathXmlApplicationContext的构造方法中设置,做一些初始化,调用refresh核心方法3. AbstractApplicationContext.refresh(),refresh()方法为了加载ApplicationC

2020-12-15 11:53:31 510

原创 ReentrantLock公平锁的实现原理

文章目录类结构类结构图核心类源码探索lock()AbstractQueuedSynchronizer.acquire()AbstractQueuedSynchronizer.addWaiter()ReentrantLock.FairSync.tryAcquire()AbstractQueuedSynchronizer.acquireQueued()AbstractQueuedSynchronizer.selfInterrupt()unlock()AbstractQueuedSynchronizer.rele

2020-07-23 17:20:05 3624

原创 Redis分布式锁实现OneByOne组件

文章目录背景实现方案实现要点核心代码OneByOneTemplate模板实现模板定义模板接口定义模板回调接口具体模板实现锁实现加锁锁释放优点背景随着互联网项目的访问量增大,对系统的要求越来越高。应运而生出分布式系统,高可用集群等技术。而且已经非常成熟,在公司里面访问量再小的应用标配都是2台集群,单机应用已经一去不复返了。java的多线程加锁的方式已经没有办法支撑这种分布式应用,因为java的线程锁,只起作用于当前运行的JVM中,多个JVM之间是相互分隔,无法控制的。实现方案核心就是将锁置于一个集中

2020-06-23 14:43:54 800 7

原创 进制换算

二进制与十进制转换二进制转十进制正整数各位值乘以2的正幂次,幂次N为每位的所处index将各个位计算结果相加例子:负整数取补码同上转成十进制加上“-”号例子:小数各位值乘以2的负幂次,幂次N为每位的所处index将各个位计算结果相加例子:十进制转二进制(有符号)正整数,除二取余法十进制数/2 取 余数,余数只可能为0或1将商结果,继续除2取余数,直到商为0将所有余数从低到高组成一组二进制例子:负整数和正整数一样取到二进制值补全位数取

2020-06-19 11:34:26 2144

原创 二进制

定义二进制数据是用0和1两个数码来表示的数,它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”位数二进制每个0或每个1就称做1位,1个字节是8位的数据单元,例:11001101 为一个字节;8位1字节符号无符号不存在负数8位二进制范围:0~25511111111 :25500000000 :0有符号正数:补全1个8位数据单元之后的最高位是0为整数负数:补全1个8位数据单元之后的最高位是1为负数算数运算,要取补码运算8位二进制范围:-128~12701111111

2020-06-19 11:32:49 1646

原创 MySQL--事务与锁

事务定义事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。(维基百科)MySQL只有InnoDB存储引擎支持事务事务的开启和关闭数据库默认是自动事务开启的,执行任意的增删改都会自动开启事务。也可以手动开启事务:-- 设定事务是否自动开启set session autocommit = on/off;-- 手工方式开启begin / start transaction -- 结束事务:提交或回滚commit / rollback事

2020-05-21 15:36:26 153

原创 MySQL--索引

定义索引是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、更新数据库表中数据。(维基百科)数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。索引则是一种可以快速查询的数据结构,找到索引就能关联找到数据存放磁盘的地址,再拿到数据。索引本身也是存储在硬盘上的,而且占用存储比数据要大的多。索引类型Normal:普通索引也叫非唯一索引,是最普通的索引,没有任何的限制。Unique:唯一性索引唯一索引要求键值不能重复。主键索引是一种特殊的唯一索引,要求键值

2020-05-11 17:44:25 209

原创 MySQL--SQL执行流程

查询SQL执行流程流程图流程说明客户端通过同步半双工的长链发送查询sql语句到Connectors。链接器进行库权限校验。通过之后请求缓存,命中缓存则直接返回,未命中则转给解析器。解析器经过词法和语法解析生成解析树。经预处理器进行权限校验和语义解析重新生成解析树。优化器将解析的语法树转换成最优的执行计划。通过执行器调用存储引擎的API,API会调用存储引擎查询数据。更新S...

2020-04-30 10:24:29 563

原创 MySQL--结构知识

结构图Connectors用来支持各种语言和SQL的交互,比如PHP,Python,Java的JDBC方式:客户端、API通信协议:TCP/IP; linux下:Unix Socket通信方式:同步半双工同一时刻只能客户端发送数据给服务端或者服务端返回数据给客户端。客户端发送SQL语句给服务端的时候,(在一次连接里面)数据是不能分成小块发送的,不管你的SQL语句有多大,都是...

2020-04-26 11:07:29 180

原创 微管理--项目经理

素质模型财务知识业务目标和行业知识导图传送门

2020-03-02 14:09:26 159

原创 微管理--项目

项目项目管理五大过程,十大领域,三元素瀑布方法组织结构项目管理演进能力成熟度模型(CMMI)精益项目管理敏捷项目管理自组织项目管理导图连接...

2020-02-28 17:11:43 184

原创 学习笔记--微管理

从事软件开发工作十来年,从一开始啥都不懂到现在可以独立做项目。角色也有转变,从开发工程师,到技术经理,再到开发部经理。一步一步走来,一直以技术人员身份自居,虽然承担部门管理工作时间不算短,但每每抽时间充电,都是学习专业技术,java、框架、数据库、中间件。而在管理方面,秉持着务实的原则,以研发项目上线为指导。过程就是身先士卒,靠自己的研发经验带动兄弟们做事。认为只要技术没风险,分配好工作,投入实施...

2020-02-26 15:33:55 182

原创 微管理--团队三要素

开发团队包括若干靠谱的人、一套行之有效的过程体系和团队采用的技术和工具人才过程/管理技术工具导图传送门:导图传送门

2020-02-26 15:30:32 568

原创 MySQL--解读执行计划

作为一名业务系统的开发人员,在企业日常开发工作中,天天相伴最多的是java代码和Sql语句。

2019-12-23 22:55:35 284

原创 学习笔记--GIT

公司从SVN转用GIT,借机学习一下GIT的知识,并用于实践。GIT知识1.GIT重要概念2.GIT正向状态流转3.GIT逆向状态流转4.GIT安装5.GIT配置6.仓库管理7.Tag操作8.分支管理9.文件管理IDEA下GIT使用Intellij IDEA–GIT使用-设置GIT客户端Intellij IDEA–GIT使用-Clone远程代码库Intellij I...

2019-12-17 15:52:45 133

原创 学习笔记--Mybatis框架

深入理解MyBatis–认识Mybatis深入理解MyBatis–认识Mybatis

2019-12-11 21:48:37 166

原创 深入理解MyBatis--认识Mybatis

一直想探究Mybatis的内部实现,之前自己抽空看了下源码,当时把核心的代码流程都能走一遍,感觉似懂非懂的懂了,过了一段时间呢又没啥收获了,还是缺乏理解深度。最近有时间买了本《Mybatis技术内幕》,站在大牛的肩膀,更好的理解Mybatis。在开始认识Mybatis之前,得先了解一些基本概念基本概念JDBCJava和数据库交互的统一API两部分:Java API 、数据库驱动API...

2019-12-11 21:35:52 364

原创 安全设计--CSRF跨站伪造

什么是CSRF概念定义CSRF跨站点请求伪造(Cross—Site Request Forgery):顾名思义,攻击者伪造用户请求请求服务端,但并非在官方站点发起,而是攻击者的站点,或者攻击者的脚本。而服务器认为却是合法的,有点借刀杀人的意思。原理攻击者伪造的网站,或者伪造请求作为一个链接或者按钮。提供给正常用户点击或者在其他站点提交,请求的地址是官方服务器,携带的是当前操作人的Coo...

2019-12-11 16:36:46 275

原创 学习笔记--Java设计模式

挺惭愧, 设计模式重复学习了很多次,但是每次学完过一段时间就记不住了。主要也是平时应用的比较少,没能融汇贯通。这是又一次学习巩固,打算写下来学习笔记,增加印象。后面在使用的时候也能方便查询目录创建型模式Java设计模式–基本概念Java设计模式–简单工厂(Simple Factory)Java设计模式–工厂方法(Factory Method)Java设计模式–抽象工厂(Abstrac...

2019-09-14 09:27:27 275

原创 学习笔记--微服务--SpringCloud

记录微服务框架的学习,Spring Cloud技术栈。积累起来,增加理解,方便使用。目录微服务-SpringCloud – 单体架构微服务-SpringCloud – 微服务的概念微服务-SpringCloud – Spring-Boot Spring-Cloud工程搭建微服务-SpringCloud – Eureka Server搭建微服务-SpringCloud – Eureka...

2019-09-12 16:16:26 232

原创 微服务--Zuul过滤器

Zuul的核心上文也提到了Zuul的核心是一系列过滤器,用来实现对外服务请求的控制。Zuul包括以下4种过滤器,分别是**“PRE”、“ROUTING”、“POST”、“ERROR”**PRE:在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。ROUTING:将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache...

2019-09-06 18:01:08 477

原创 微服务--Zuul服务网关

Netflix ZuulZuul是由netflix开源的API网关,提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。具备负载均衡的作用本质上是一个web servlet应用。Zuul是通过Servlet来实现的,Zuul通过定义了ZuulServlet(类似SpringMVC的DispatcherServ...

2019-09-06 15:09:50 157

原创 微服务--Turbine聚合监控分析

上文交代了简单的搭建Turbine工程,将多个Consumer节点的监控页面,聚合到Turbine的一个页面进行监控。但是结果和预期的不太一样,这边再进行梳理一下。多Consumer集群上文进行了Consumer集群,并且同时访问一个API服务,发现显示都是聚合在一张图中3个host ,请求成功数是3节点总请求数,这样的问题就是并不知道每台Consumer的请求情况。监控的其实是服务端的总量...

2019-09-04 16:20:40 413 2

原创 微服务--Turbine聚合监控

在复杂的分布式系统中,相同服务的节点经常需要部署上百甚至上千个,很多时候,运维人员希望能够把相同服务的节点状态以一个整体集群的形式展现出来,这样可以更好的把握整个系统的状态。 为此,Netflix提供了一个开源项目(Turbine)来提供把多个hystrix.stream的内容聚合为一个数据源供Dashboard展示。布置Hystrix Dashboard Consumer集群其他配置同单...

2019-09-03 17:59:19 377

原创 微服务--Hystrix Dashboard熔断监控

Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。搭建Hystrix Dashboardpom.xml 添加依赖spring-cloud-starter-netflix-hystrixspring-cloud-starter-ne...

2019-09-03 15:21:44 270

原创 微服务--Hystrix熔断器

雪崩效应在微服务系统中,一个请求会调用多个服务来完成,服务可用的情况下,当某一个服务出现网络延迟或者故障时,请求就会被阻塞,等待故障服务响应。在高并发的情况下,单个服务的延迟导致整个请求延迟或阻塞,可能在几秒就使整个服务负载饱和雪崩效应: 单个点服务的请求故障导致用户请求阻塞,最终导致整个服务资源耗尽。由于服务依赖性,导致依赖该故障服务的其他服务也处于阻塞,最终导致其他服务资源耗尽,不可...

2019-09-03 11:27:08 480

原创 微服务--Eureka Provider Consumer通信

步骤前提基于 Eureka Server 注册中心搭建完成开始搭建Provider 和 Consumer 服务通过Fegin 进行通信搭建Eureka Provider创建Eureka Provider工程 ;POM引入依赖 netflix-eureka-client <dependency> <groupId>org.spring...

2019-08-26 17:57:12 585

原创 微服务--Eureka Server搭建

注册中心微服务架构中,需要一个最基本的功能就是服务的注册和发现。Eureka:这里是 Spring Cloud Eureka 的简称,是 Spring Cloud Netflix 组件之一。 用于搭建服务注册中心;实现服务治理,包括服务注册、服务发现和服务检测监控等。组成角色Eureka Server :提供服务注册和发现等Service Provider:服务提供者:自身注册...

2019-08-18 14:49:13 1122

原创 微服务--Spring-Boot Spring-Cloud工程搭建

前言为了进一步学习微服务实战,决定就最近比较流行的微服务框架入手;先动手搭建一套微服务的框架,尽可能功能覆盖全,且不过度追求所有技术,够用就好,后续再慢慢深入。打算搭建技术:spring-boot spring-cloud Eureka Ribbon Feign Hystrix Appllo Zuul 等Spring Boot 搭建创建Maven工程依赖Spring...

2019-08-18 10:44:08 689

原创 微服务--概念

什么是微服务MicroServices微服务最初是由Martin Fowler提出来的他的理解如下:微服务架构就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信,通常是HTTP RESTFUL API。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。特点:服务单元:...

2019-08-16 16:54:07 146

原创 JVM--基本概念

定义JVM是JAVA虚拟机(JAVA Virtual Machine)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JAVA虚拟机有自己完善的虚拟硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得JAVA程序只需生成在JAVA虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行...

2019-08-16 14:35:27 180

原创 微服务--单体架构

经典3层模型表现层:交互层,用于直接与用户交互。通常指网页,UI业务逻辑层:业务逻辑处理层数据访问层:用于操作数据库经典的单体架构表现层、逻辑层、数据访问层在一个工程,编译打包,部署在一台服务上。经典的J2EE工程:表现层JSP、业务逻辑层Service Controller和数据访问层Dao ,打成war包,部署在tomcat等其他的servlet容器中运行。经典的部署方式L...

2019-08-14 20:28:52 309

原创 Spring jar包模块

版本3.x各模块模块说明artifactIdorg.springframework.aop-3.1.4.RELEASE.jarSpring的面向切面编程,提供AOP(面向切面编程)实现spring-aoporg.springframework.asm-3.1.4.RELEASE.jarSpring 独立的asm 程序,相比2.5版本,需要额外的asm.jar...

2019-08-01 19:39:20 120

原创 UML--用例图

定义UseCase用例图描述了一个外部观察者的视角所见的系统的部分功能,描述这个系统是什么而不是这个系统怎么工作构成参与者:Actor参与者不仅可以由人担任,还可以是其他系统、设备,甚至时钟用例:UseCase系统提供的外部可感知的功能单元用例是参与者想要系统做的事情关联:Association参与者和用例之间的通信泛化:Generalizatio...

2019-07-18 17:35:00 189

原创 UML--概览

概述Unified Modeling Language (UML):称统一建模语言或标准建模语言UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML视图结构性视图用来对软件系统的各种对象和实现进行建模,描述其数据构成、 功能构成及它们之间的关系。视图:用例图、类图、对象图、构件图、部署图动态视图定义了对...

2019-07-18 14:20:03 140

原创 Java签名

概念将通信内容的摘要信息使用发送者的私钥进行加密,然后将密文与原文一起传输给信息的接收者,接收者通过发送者的公钥信息来解密被加密的摘要作息,然后使用与发送者相同的摘要算法,对接收到的内容采用相同的方式方式产生摘要串,与解密的摘要串进行对比,如果相同,则说明接收到的内容是完整的,在传输过程中没有受到第三方的篡改,否则说明通信内容已被第三方修改。签名认证是对非对称加密技术与数字摘要技术的综合运...

2019-05-07 21:01:22 3050

原创 Java加密

概念加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。加密作用:防止重要敏感信息,被人获取。防看加密一般指的是双向加密分类对称加密非对称加密算法对称:DES、3DES非对称:RSARSA加密异常:javax.crypto.IllegalBlockSizeException: Data...

2019-05-07 20:55:32 736

原创 Java摘要

概念它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。消息摘要采用单向Hash 函数将需加密的明文”摘要”成一串密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其...

2019-05-07 20:51:02 2111

原创 Java密钥操作

密钥相关类SecretKeySpec,KeyGenerator,KeyFactory,SecretKeyFactory,KeyPairGenerator对称密钥生成:SecretKeySpec keyGenerator SecretKeyFactory非对称密钥生成:KeyPairGenerator常用的KeyGenerator、KeyPairGenerator ;可以满足...

2019-05-07 20:43:39 8650

空空如也

空空如也

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

TA关注的人

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