![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 77
博学de叫兽
这个作者很懒,什么都没留下…
展开
-
服务熔断降级简介
背景 在微服务中,当一切正常时,请求流看起来是这样的: 当其中有一个服务(例如服务I)有延迟时,它可能阻塞整个用户请求: 在高流量的情况下,一个依赖服务的延迟可能导致服务器上的所有资源在数秒内饱和,这也意味着后续再有请求将无法立即提供服务:解决方案 当使用熔断降级框架时,框架会包装每个依赖项,原有架构会发生变化,每个依赖项相互隔离,当延迟发生时,它会被限制在资源中,并包含回...原创 2020-04-09 14:28:31 · 4937 阅读 · 0 评论 -
Java8 Stream的各种使用姿势
Stream简介 Java 8 API添加了一个新的抽象称为流(Stream),它可以让你以一种声明的方式处理数据。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选,排序,聚合等。概括来说:Stream的出生就是为了代码好看、为了性能高如何Debug 在IDEA的Debug窗口找到Trace Current Stream Chain按钮...原创 2020-03-19 10:36:08 · 1415 阅读 · 0 评论 -
Spring Cloud 学习纪要二:Feign
Spring Cloud Feign:服务通信 Spring Cloud Feign是简化Java HTTP客户端开发的工具,它的灵感来自于Retrofit、JAXRS-2.0和WebSocket。接下来将展示一个入门Demo。开发环境版本IDEA2018.2.6JDK1.8Spring Boot2.1.0Spring CloudGreenwic...原创 2018-11-20 11:10:59 · 10362 阅读 · 0 评论 -
synchronized与static synchronized详解
synchronized与static synchronized的区别synchronized是实例锁,对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块。注意这里是类的当前实例, 类的两个不同实例就没有这种约束了static synchronized是类锁,控制类的所有实例的并发访问,限制多线程中该类的所有实例同时访问JVM中该类所对应的代...原创 2018-10-31 10:32:08 · 17778 阅读 · 0 评论 -
分布式锁之Redis实现
旧版实现 实现思路:使用jedis.setnx()命令实现加锁,其中key是锁,value是锁的过期时间。通过setnx()方法尝试加锁,如果当前锁不存在,返回加锁成功。如果锁已经存在则获取锁的过期时间,和当前时间比较,如果锁已经过期,则设置新的过期时间,并校验是否当前线程请求锁,若是则返回加锁成功。 public static boolean tryLock(String l...转载 2018-10-08 13:12:38 · 10380 阅读 · 1 评论 -
Java 校招面经合集
小博Java面试路上的点点滴滴 篇章 小博博客地址 Java面试之基础篇 https://blog.csdn.net/u012102104/article/details/79772903 Java面试之框架篇 https://blog.csdn.net/u012102104/article/details/79772419 Java面试之数据结构...原创 2018-09-03 15:41:22 · 31247 阅读 · 1 评论 -
并发编程
/** * 线程池 */private static final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 10, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(500));/** * 推送结果 */@Overr...原创 2018-10-24 16:46:18 · 10429 阅读 · 0 评论 -
Spring Cloud 学习纪要四:Config
Spring Cloud Config:配置中心 普通应用中,当一个系统的配置文件发生改变时,需要重启该服务才能使新配置生效。而Spring Cloud Config可以实现微服务中所有系统配置文件的统一管理,当配置文件发生变化的时候,系统会自动更新获取新的配置。开发环境版本IDEA2018.2.6JDK1.8Spring Boot2.1.0Spr...原创 2018-11-22 15:36:19 · 10696 阅读 · 0 评论 -
Spring Cloud 学习纪要一:Eureka
Spring Cloud Eureka[服务治理组件] Spring Cloud Eureka是Spring Cloud Netflix服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务注册发现功能,接下来将展示一个入门Demo.开发环境版本IDEA2018.2.6JDK1.8Spring Boot2.1....原创 2018-11-20 10:27:52 · 10802 阅读 · 0 评论 -
@Resource和@Autowire的区别
@Resource和@Autowired@Resource和@Autowired都可以用来装配bean,都可以用于字段或setter方法。@Autowired默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false。 -@Resource默认按名称装配,当找不到与名称匹配的bean时才按照类型进行装配。名称可以通过name属性...原创 2018-03-08 10:36:53 · 39591 阅读 · 11 评论 -
Spring Cloud学习纪要汇总
小博Spring Boot快速入门GitChathttps://gitbook.cn/gitchat/activity/5a444c451f6ee91a25846ac1小博Spring Cloud学习纪要篇章小博博客地址Spring Cloud Eureka (服务治理)https://blog.csdn.net/u012102104/article/details/8...原创 2018-12-11 15:21:31 · 11093 阅读 · 0 评论 -
Spring Cloud 学习纪要九:Sleuth
Spring Cloud Sleuth:链路跟踪 Spring Cloud Sleuth是一种分布式追踪解决方案,它兼容Zipkin。微服务架构由于服务单元数量众多、调用关系杂乱、业务复杂,如果出现了错误和异常很难去定位,所以微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,让每个请求步骤直观可见,而 Sleuth + Zipkin 便可以帮助我们做...原创 2018-11-26 22:10:00 · 10482 阅读 · 0 评论 -
Spring Cloud 学习纪要八:Hystrix
Spring Cloud Hystrix:熔断降级 Spring Cloud Hystrix是Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或第三方库,防止级联失败,从而提高系统的可用性与容错性。开发环境版本IDEA2018.2.6JDK1.8Spring Boot2.0.6Spring CloudFinchley.SR2...原创 2018-11-26 16:23:04 · 10454 阅读 · 0 评论 -
Spring Cloud 学习纪要六:Stream
Spring Cloud Stream:消息驱动 Spring Cloud Stream 是一个构建消息驱动微服务的框架,应用程序通过 input 或者 output 来与 Spring Cloud Stream 中 binder 交互,而 binder 负责与消息中间件交互。开发环境版本IDEA2018.2.6JDK1.8Spring Boot2.0....原创 2018-11-24 22:11:29 · 10803 阅读 · 0 评论 -
Spring Cloud 学习纪要七:Zuul
Spring Cloud Zuul:统一网关 Spring Cloud Zuul 提供动态路由,监控,弹性,安全等边缘服务,将细粒度的服务组合起来提供一个粗粒度的服务,所有请求都导入一个统一的入口,那么整个系统只需要暴露一个服务,对外屏蔽服务端实现细节,这样也减少了客户端与服务器的网络调用次数,这就是api gateway,也是Zuul可以帮我们实现的功能。开发环境版本I...原创 2018-11-25 20:14:23 · 10490 阅读 · 0 评论 -
Spring Cloud 学习纪要五:Bus
Spring Cloud Bus:消息总线 上一篇我们讲到统一配置中心Spring Cloud Config,实现了分布式项目配置文件的统一管理,但是留下了一个问题:修改配置之后如何免重启自动生效。Spring Cloud Bus组件就可以用来做这件事,值得注意的是,前面我们所使用的版本Greenwich.M1的bus组件存在bug,我们将config和provider项目改为如下版本(其他项...原创 2018-11-24 16:58:46 · 11065 阅读 · 6 评论 -
Spring Cloud 学习纪要三:Ribbon
Spring Cloud Ribbon:负载均衡 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器,它可以通过在客户端中配置ribbonServerList来设置服务端列表去轮询访问以达到均衡负载的作用。开发环境版本IDEA2018.2.6JDK1.8Sp...原创 2018-11-20 12:03:44 · 10706 阅读 · 0 评论 -
快速学习Spring Boot
Spring Boot项目搭建从今天开始,小博将撰写Spring Boot系列的博客。由于是菜鸟自撰的备忘录型博客,大神请无视,不喜勿喷。使用的开发环境是:IDEA 2017.2JDK 1.8Spring Boot 1.5.9将涉及到的技术栈有:JPAMyBatisThymeleafDruidRedisRabbitMQMongoDBQuartz第一原创 2017-12-24 23:45:07 · 15127 阅读 · 3 评论 -
Referenced file contains errors(http://www.springframework.org/schema/beans/spring-beans-4.0.xsd).
Spring配置异常解决办法 Referenced file contains errors(http://www.springframework.org/schema/beans/spring-beans-4.0.xsd). 这是由于缓冲造成的,解决办法如下: Eclipse中 Preferences->General->Network Connections->Cache原创 2017-12-04 20:22:13 · 13261 阅读 · 5 评论 -
Spring Boot application starters
Spring Boot application starters官网原文链接 Name Description spring-boot-starter Core starter, including auto-configuration support, logging and YAML spring-boot-starter-activemq Sta原创 2018-02-01 11:29:33 · 14256 阅读 · 3 评论 -
Spring Boot JPA 命名规则
以下表格摘录自官方文档 Keyword Sample JPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or findByLastnameOrFirstname … where x.lastname = ?1 or x原创 2018-01-12 10:20:53 · 16243 阅读 · 5 评论 -
@Valid 注解的使用
@Valid 注解的使用原创 2018-01-02 22:42:44 · 29184 阅读 · 4 评论 -
IntelliJ IDEA创建Spring SpringMVC MyBatis整合Maven项目,并提交至Github
IntelliJ IDEA创建Spring SpringMVC MyBatis整合Maven项目,并提交至Github 本文小博将写一篇IDEA创建SSM+Maven整合项目,并提交至Github的教程。较为基础,大神勿喷。原创博客,转载请注明来源。①新建Maven项目,如下图顺序。第三张图片中,添加一个参数archetypeCatalog=internal,表示仅使用内部元数据,不用这...原创 2017-12-10 15:34:30 · 15903 阅读 · 7 评论 -
IDEA搭建Web Service项目
上篇小博记录了MyEclipse下搭建简单Web Service项目的详细过程,这篇将记录IDEA下,简单Web Service项目搭建的详细过程。原创 2017-12-25 16:49:54 · 15031 阅读 · 3 评论 -
MyEclipse搭建Web Service项目
Web Service项目搭建 本篇博客,小博将记录搭建简单Web Service工程的详细过程。原创 2017-12-25 14:48:16 · 14387 阅读 · 3 评论 -
多线程相关方法详解
Thread中的方法start() 用start() 方法来启动线程,真正实现了多线程运行,这时无需等待run() 方法内代码执行完毕,而是直接继续执行下面的代码。通过start()方法启动一个线程后,线程处于就绪状态,并没有运行,一旦得到CPU时间片,就开始执行run()方法。 注意:多次start()启动一个线程是非法的run() run()称为线程体,它...原创 2018-04-18 11:01:29 · 12803 阅读 · 0 评论 -
TCP、HTTP详解
TCP和HTTP TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,采用三次握手建立连接,四次挥手终止连接。 TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去,服务器和客户端均可主动发起断开连接的请求。 HTTP(Hypertext Transfer P...原创 2018-04-18 11:05:54 · 29477 阅读 · 2 评论 -
JVM类加载机制、内存管理机制、GC机制
JVM类加载机制 .java文件编译—>生成JVM能够识别的.class字节码文件—>JVM把.class文件加载到内存—>对数据进行校验、转换解析、初始化 后续由执行引擎执行,在执行过程中,需要运行时数据区提供数据 类的生命周期是加载、验证、准备、解析、初始化、使用、卸载JVM内存管理机制 JVM将内存划分为几个部分:PC寄存器(程序计数器)...原创 2018-04-18 11:02:28 · 13452 阅读 · 0 评论 -
Java中父类和子类的代码执行顺序
Java中(静态)代码块、(静态)变量的执行顺序父类代码public class Parent { static { System.out.println("Parent static block"); } { System.out.println("Parent non static block"); } ...原创 2018-05-02 14:12:13 · 12216 阅读 · 1 评论 -
PO OOP AOP IoC SOA全解
名词解释 PO(Procedure Oriented,面向过程编程):以过程为中心,分析出解决问题所需要的步骤,然后把这些步骤一步一步实现。OOP(Object Oriented Programming,面向对象编程):程序由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象...原创 2018-03-08 11:14:35 · 13476 阅读 · 4 评论 -
RabbitMQ、ActiveMQ、Kafka比较
系统吞吐量: Kafka > RabbitMQ > ActiveMQ持久化消息(宕机消息不丢失):RabbitMQ > ActiveMQ高并发:RabbitMQ(Erlang语言开发) > ActiveMQ集群负载均衡:Kafka > Rabbit兼容性:ActiveMQ(与Java完美兼容) > RabbitMQRabbitMQ基于AMQP协议...原创 2018-03-08 15:50:55 · 12059 阅读 · 4 评论 -
Java中 List、Set、Map 之间的区别
小博此篇记录了开发过程中常用的几种集合详解,三者的区别对比均从IDEA相关层次图里面所得知,基于JDK8,如有错误欢迎批评指正。List(列表) List的元素以线性方式存储,可以存放重复对象,List主要有以下两个实现类:ArrayList : 长度可变的数组,可以对元素进行随机的访问,向ArrayList中插入与删除元素的速度慢。 JDK8 中ArrayList扩容的实...原创 2018-04-18 11:05:04 · 35929 阅读 · 2 评论 -
synchronized、volatile、Lock详解
在Java并发编程过程中,我们难免会遇到synchronized、volatile和lock,其中lock是一个类,而其余两个则是Java关键字。以下记录了小博开发过程中对这三者的理解,不足之处请多指教。 关于线程与进程请参考博文 以操作系统的角度述说线程与进程synchronized synchronized是Java中的关键字,是一种同步锁。有以下几种用法:1、...原创 2018-04-18 11:04:42 · 16637 阅读 · 0 评论 -
进程、线程、死锁
进程 进程:系统进行资源分配和调度的一个独立单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程有 5 种基本状态:创建、就绪、阻塞、执行、终止。 线程 线程:CPU调度的一个基本单位。线程与同属一个进程的其他线程共享进程所拥有的全部资源。线程有 3 个基本状态:就绪、执行、阻塞。进程和线程的区别进程是资源的分配和调度的一个独...原创 2018-04-18 11:05:29 · 12437 阅读 · 0 评论