
笔记
文章平均质量分 67
b9x_
只怕失望
展开
-
基于Eureka远程调用时FeignClient注解参数的含义
@FeignClient(value = "service-provider", url = "http://test.com", configuration = FeignConfiguration.class)public interface ServiceRpc { //}如上,注解参数中,value代表服务提供者注册在eruka中的name,url代表服务提供者的直接地址,configuration是我们自己feign相关的一些配置;要注意,同时配置value和url时.原创 2020-07-02 15:23:49 · 1838 阅读 · 0 评论 -
maven - 打包命令跳过PMD、checkstyle、test
mvn clean install -Dpmd.skip=true -Dcheckstyle.skip=true -DskipTests原创 2020-05-18 20:34:03 · 3452 阅读 · 0 评论 -
SpringBoot - 条件注解@Conditional...
作用当我们在启动Spring 容器加载Bean时,想要限制某些Bean在某些条件下才被加载到容器中,这是我们即可通过注解@Conditional...,当然该注解下绝大条件。注解详情通过查看可以看到@Conditional有很多注解,功能相同,适用于不同的条件 ConditionalOnBean:当容器中加载了某个Bean时,该注解下的Bean才会被加载 C...原创 2020-04-22 16:24:52 · 378 阅读 · 0 评论 -
Feign - 理解使用
最近在整合项目的RPC调用,对Feign有了更多对一些理解Feign它是一个声明式WebService客户端.,它支持多种注解,Feign自带注解以及JAX-RS标准的注解.Feign也支持可拔插式的编码器和解码器.即我们可以自定义编码器、解码器、错误处理器;Spring Cloud是对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters....原创 2020-01-08 20:54:20 · 438 阅读 · 0 评论 -
Spring - retry重试机制
关于spring-retry有些时候我们对于的一些行为遭遇到意外时需要重试时,如远程调用其他接口失败,数据相关的事务失败,这时我们就需要重试机制了。spring-retry通过注解声明式的解决重试机制,功能齐全,简单好用。主要注解@EnableRetry :加在主类上,声明启用重试机制@SpringBootApplication@RestController@EnableCa...原创 2019-12-03 17:32:46 · 375 阅读 · 0 评论 -
数据库 - MySql MVCC机制
什么是MVCC MVCC:是一种多版本并发控制(MVCC,Multiversion Currency Control)。一般情况下,事务性储存引擎不是只使用表锁,行加锁的处理数据,而是同时结合了MVCC机制,以处理更多的并发问题。当然Mysql中Innodb引擎才支持。MySql如何实现的MVCC InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列...原创 2018-08-22 16:02:25 · 1417 阅读 · 0 评论 -
JVM - 常见配置参数
堆栈常用-Xms :初始堆大小 -Xmx :最大堆大小 -Xss :为jvm启动的每个线程分配的内存大小 -XX:NewSize=n :设置年轻代大小 -XX:NewRatio=n: 设置老年代和年轻代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n :年轻代中Eden区与两个Survivor区的比值...原创 2018-08-14 16:35:05 · 340 阅读 · 0 评论 -
Git - 常用命令
一般配置git --version //查看git的版本信息git config --global user.name //获取当前登录的用户git config --global user.email //获取当前登录用户的邮箱登录git/* 如果刚没有获取到用户配置,则只能拉取代码,不能修改 要是使用git,你要告诉git是谁在使用*/git con...原创 2018-06-21 10:12:18 · 203 阅读 · 0 评论 -
常见的IO模型
常见的IO模型有四种:同步阻塞IO(BIO)同步非阻塞IO(NIO)异步非阻塞IO(AIO)IO多路复用首先先要明白阻塞、非阻塞、同步、异步的概念: 阻塞和非阻塞是一组相对应的概念,其强调的是等待响应结果的状态方式,是一直就在等待什么都不可以做(阻塞),还是在等待的时候可以做其他事情(非阻塞),多是有连接有请求处理时等待结果的状态方式。 同步和异步强调的是获取IO结果的...原创 2018-05-24 17:29:57 · 445 阅读 · 0 评论 -
Nginx - 负载均衡策略(算法)
Nginx可使用的负载均衡策略有五种:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)。1.轮询(默认): 缺点:不会考虑到每台的服务器的处理能力,不够聪明2.权重 注意 权重这种策略是根据权重的比例进行负载,是这样的一个概率,而不是百分百按比例分配。 优点:考虑了每台服务器处理能力的不同,用的最多...原创 2018-05-23 18:31:25 · 738 阅读 · 0 评论 -
计算机网络 - 计算机网络体系结构
什么是计算机网络体系结构?网络协议是计算机网络必不可少的,一个完整的计算机网络需要有一套复杂的协议集合,组织复杂的计算机网络协议的最好方式就是层次模型。而将计算机网络层次模型和各层协议的集合定义为计算机网络体系结构(Network Architecture)。常见的三种计算机网络体系结构OSI的七层协议体系结构应用层:为特定应用程序提供数据传输服务,例如 HTTP、DNS 等。数据单位为报文。原创 2018-05-08 09:05:53 · 545 阅读 · 0 评论 -
分布式事务 - 2PC和3PC
协调者在分布式系统中,每一个机器节点虽然都能明确的知道自己执行的事务是成功还是失败,但是却无法知道其他分布式节点的事务执行情况。因此,当一个事务要跨越多个分布式节点的时候(比如,淘宝下单流程,下单系统和库存系统可能就是分别部署在不同的分布式节点中),为了保证该事务可以满足ACID,就要引入一个协调者(Cooradinator)。其他的节点被称为参与者(Participant)。协调者负责调度参...转载 2018-08-23 10:48:54 · 239 阅读 · 0 评论 -
常见算法 - 二叉搜索树与双向链表
/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { //左侧...原创 2018-08-20 16:41:45 · 252 阅读 · 0 评论 -
常见算法 - 连续子数组最大和
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array.length == 0){ return 0; } //sum为子数组的和 int sum = array[0]; //max为子数组的最大...原创 2018-08-20 17:27:36 · 205 阅读 · 0 评论 -
设计模式 - Java静态代理和动态代理
本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢?原因:1,通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区别是什么呢?2,通过学习动态代理了解到动态代理是一种符合AOP设计思想的技术,那么什么又是AOP?下面是我对它们的理解! 代理Proxy: Proxy代理模式是一种结构...转载 2018-09-05 09:21:21 · 157 阅读 · 0 评论 -
Java - 函数式编程(1): lambda表达式入门
关于lambda表达式 Lambda 是Jdk8推出的一个新特性,允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 Lambda表达式只支持函数式接口 也就是只有一个抽象方法的接口。用来实现接口 使用 Lambda 表达式可以使代码变的更加简洁紧凑,同时其实是在要求我们想的更多,写的更少。基础表达式写法(...原创 2018-09-05 11:32:54 · 672 阅读 · 0 评论 -
Java - 函数式编程(2):常用的流操作
流操作: 即stream接口针对于集合类提供的操作。集合类.stream()集合获取到stream(流),随之进行自己想要的操作。filter():按照一定条件过滤集合的元素 。 list.stream().filter(x -> x > 5); 像filter()这类返回值为Stream的方法,它其实只是刻画出了stream,并没有产生新的集合,也就是按照规则构造出Stre...原创 2018-12-24 10:40:52 · 322 阅读 · 1 评论 -
分布式理论 - 服务中可能出现的网络异常
网络异常 分布式服务节点间通过不可靠的网络进行通信,可能出现以下几种异常。 消息丢失 消息丢失是最常见的网络异常。对于常见的 IP 网络来说,网络层不保证数据报文(IP fragment)的可靠传递,在发生网络拥塞、路由变动、设备异常等情况时,都可能发生发送的数据丢失。由于网络数据丢失的异常存在,直接决定了分布式系统的协议必须能处理网络数据丢失的情况。 依据网络质量...原创 2019-02-21 16:34:09 · 592 阅读 · 0 评论 -
分布式理论 - 数据分布的方式
数据分布方式 所谓分布式系统顾名思义就是利用多台计算机协同解决单台计算机所不能解决的计算、存储等问题。单机系统与分布式系统的最大的区别在于问题的规模,即计算、存储的数据量的区别。将一个单机问题使用分布式解决,首先要解决的就是如何将问题拆解为可以使用多机分布式解决,使得分布式系统中的每台机器负责原问题的一个子集。由于无论是计算还是存储,其问题输入对象都是数据,所以如何拆解分布式系...原创 2019-02-25 15:24:15 · 1564 阅读 · 0 评论 -
Hive - 基础入门
关于Hive官方定义:The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL.即:Hive是一种用类SQL语句来协助读写、管理那些存储在分布式存储系统上大数据集的数...原创 2019-07-30 11:21:01 · 156 阅读 · 0 评论 -
操作系统 - 详解进程之间的通信方式
一、管道 管道类似于一种特殊的文件(并不是),它存在于内存中,进程可以对它进行读写,它提供流控制,保证进程的正确读写,即管道为空时读进程会阻塞,管道为满时写进程会阻塞,以此实现进程之间的通信。 管道有三种:1.普通管道(无名管道、也常直接称管道) 2.流管道 3.命名管道(FIFO)普通管道 它是半双工的,即只能单向传输。 它是有...原创 2018-05-13 17:06:20 · 10014 阅读 · 0 评论 -
redis - Redis五种基本类型的底层实现
Redis对象类型简介Redis是一种key/value型数据库,其中,每个key和value都是使用对象表示的。比如,我们执行以下代码: [plain] view plain copyredis>SET message "hello redis" 其中的key是message,是一个包含了字符串"message"的对象。而value是一个包含了"hello redis"...转载 2018-05-04 16:02:27 · 4078 阅读 · 0 评论 -
request 和 responsed.sendRedirect的url问题
1、request.getRequestURL()返回的是完整的url,包括Http协议,端口号,工程名,servlet名2、request.getRequestURI()得到的是request URL的部分值,不包括Http协议,端口号3、request.getContextPath() 返回的是当前工程名的url4、request.getServle原创 2017-11-27 22:05:44 · 1175 阅读 · 0 评论 -
算法练习(1) - Sumsets(2709)&Message Decowding(2716)
Sumsets(2709)The cows are thrilled because they’ve just learned about encrypting messages. They think they will be able to use secret messages to plot meetings with cows on other farms. Cows are not k原创 2017-12-23 19:34:48 · 364 阅读 · 0 评论 -
JavaEE学习总结(2) - session
session在会话跟踪机制中用到,可以实现同一客户端向服务器端发送多次请求。session是由服务器端创建的(tomcat),每一个客户端第一次发送请求时服务器就会创建唯一一个与客户端对应的session,创建完之后会把session存储在浏览器的cookie中,也就是session的标识sessionid发送到浏览器。客户端再一次向服务器发送请求时,就会把存储的sessionid也发送到服原创 2017-10-26 16:11:48 · 257 阅读 · 0 评论 -
JDBC—总结(1)
1.JDBC总体开发流程1.加载驱动(只需要加载一次,也可自动加载)Class.forName2.获得连接 public Connection getConn(){ Connection conn=null; try { conn=DriverManager.getConnection("jdbc:mysql://localhost/test","root",原创 2017-11-02 21:37:40 · 323 阅读 · 2 评论 -
JS学习总结(二)- Dom编程
1.关于DOMDocument Object Model(文档对象模型)。 多用来处理和表示HTML和XML文档。DOM是针对xml、html的基于树的API。DOM树定义了节点Node的接口以及许多节点类型来表示文档不同功能不同方面的节点。DOM结构理解为树型结构,节点就是树枝分叉处的那个点。2.Js Dom 编程差不多就是利用document(代表着浏览器中打开的文原创 2017-12-11 16:37:01 · 282 阅读 · 0 评论 -
JS学习总结(一) - 基础
1.关于jsjs:javascript和java没关系。它是解释性语言,java是编译型语言。Js主要用于网页编程,在网页编程中通过标签嵌入js代码,用它来可以处理一些数据,编写一些方法。2.js变量js都是弱类型,定义变量时不能用数据类型,统一使用var 来定义变量;var a=1;数据类型:Number,String,Boolean,Null,Undefined(未定义的)原创 2017-12-11 15:44:55 · 2841 阅读 · 0 评论 -
JDBC—总结(2).Dao模式
1.Dao模式把java对数据库操作封装起来的一个较固定的套路。2.Dao的组成部分dao接口:定义所有的dao操作(CURD)dao实现类:实现DAO接口中的操作vo类:(value object)实例代表表中的一条记录,只有属性,没有操作;工厂类:用来创建dao对象;(少量对象可以没有)3.Dao模式流程1.vopackage com.vo;import原创 2017-11-06 13:18:46 · 505 阅读 · 0 评论 -
JSP—学习笔记(1)
1.什么是jsp(Java Server Page)Jsp是运行在服务器端的页面,本质上是一个servlet(servlet是运行在浏览器的),但语法更像html,并且可以同时写html,css,js,同时也可以插入java代码。2.jsp与servlet的比较servlet:更适合写java代码(本就是java的一个类)jsp:更适合展示页面,(因为可以直接写html,c原创 2017-11-02 15:58:35 · 203 阅读 · 0 评论 -
JSP - <jsp:include>和<%@include%>的区别
jsp:include指令<jsp:include page="head.jsp" /> //放在头部动态引入。用<jsp:include path=""> 引入的jsp文件,引入的文件是在翻译阶段执行.原文件和引入文件被编译成两个servlet.两个.jsp文件是两个相互独立的整体,它们之间的关系是通过request和reponse来发生的.include动作<%@include file原创 2018-01-11 14:34:19 · 465 阅读 · 0 评论 -
JVM - 类加载机制
一.关于类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行效验,解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化。其中验证,准备,解析属于连接阶段。二.加载过程加载通过一个类的全限定名来获取其定义的二进制字节流。将这个字节流所代表的静态存储结构(如配置文件)转化为方法区的运行时原创 2018-02-05 21:20:34 · 255 阅读 · 0 评论 -
Mybatis - 入门及配置文件
一.关于Mybatismybatis是一个持久层的框架,她支持自定义sql,存储过程,高级映射,十分灵活;几乎消除了所有的jdbc代码。我们在使用mytais基本上只需要写sql语句,所以她是一个半自动化持久层框架,对比Hibernate全自动。二.Mybatis中Dao的实现方式Dao接口+Dao实现类+xml配置文件; 太麻烦,一般不使用。Dao接口+xml配置; 接口名=nam原创 2018-02-06 16:28:15 · 6975 阅读 · 0 评论 -
redis - redis为什么可以这么快?
今天我在一个技术群里提出一个问题:Redis为什么这么快,Redis的那些特性能够支持了它的高并发?之前的我,也只是知道Redis是内存数据库,所以读取速度快;IO使用的是多路复用(多路网络连接复用一个IO线程),使用一个线程来轮询描述符,减少了线程上下文的切换,将数据库的开、关、读、写都转化成了时间,所以IO时也有加速。虽然理解上就是这些(当然还有一些数据结构的原因,全程使用hash结构,加速读...转载 2018-05-10 19:11:02 · 940 阅读 · 0 评论 -
计算机网络 - HTTP知识点总结(面试常考题)
HTTP:超文本传输协议(HyperText Transfer Protocol)是上应用最为广泛的一种。一、请求和响应报文1. 请求报文2. 响应报文二、HTTP 的方法客户端发送的 请求报文 第一行为请求行,包含了方法字段。GET|获取资源:当前网络请求中,绝大部分使用的是 GET 方法。HEAD获取报文首部和 GET 方法一样,但是不返回报文实体主体部分。主要用于确认 URL 的有效性以及资...原创 2018-05-02 18:37:45 · 752 阅读 · 0 评论 -
数据库 - MySql索引的合理使用及优化
索引可以帮助我们更快查询、排序。但在使用上要避免一些导致索引失效的情况,同时要合理的使用索引,毕竟索引也是有缺点的,建立不当也会导致查询更慢,维护困难。索引列上不能使用表达式或函数对字符串建立前缀索引(因为不同引擎对索引列的长度有限制,所以字符串太长无法建立索引或者索引查询效率很低)CREATE INDEX INDEX_NAME ON table(col_name(n)) //n即为前缀长度 ...原创 2018-05-09 10:00:14 · 291 阅读 · 0 评论 -
SpringMvc - SpringMvc的执行流程
SpringMvc的执行流程spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获; 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.返回原创 2018-03-19 21:15:30 · 439 阅读 · 0 评论 -
java多线程与并发 - 线程池详解
http://www.importnew.com/19011.html转载 2018-03-13 19:32:41 · 188 阅读 · 0 评论 -
java多线程与并发 - 并发工具类
来源:http://blog.csdn.net/sunxianghuang/article/details/52277394在JDK的并发包里提供了几个非常有用的并发工具类。CountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger工具类则提供了在线程间交换数据的一种手段。本章会配合一些应用场景来介绍如何使用这些工具类。...转载 2018-03-09 21:10:56 · 225 阅读 · 0 评论 -
java多线程与并发 - volatile的作用及原理
一.volatile的作用当一个变量加上 volatile关键字 之后,就具备了可见性,但不能具备原子性可以防止指令重排序,在一定程度上保证指令有序性。也就是指令重排序时不能把后面的指令重排序到内存屏障之前的位置,而对volatile关键字修饰的变量的操作就相当与一个内存屏障。二.volatile的使用使用volatile时必须具备以下2个条件:1. 对变量的写操作不依...原创 2018-02-08 08:17:43 · 172 阅读 · 0 评论