自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (4)
  • 收藏
  • 关注

原创 Java多线程框架Executor

Executor是java5之后提供的一个多线程框架java.util.concurrent,通过Executor提供的线程池来创建线程,他基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务。 Executor提供了4中创建线程池的方法: 1、newSingleThreadExecutor():创建一个单线程化的线程池,它只会用唯一的工...

2018-11-19 19:00:44 218

原创 四、Java多线程并发同步之Exchanger

概述 Exchanger:交换器,用于线程间交换数据,他提供一个同步点,在这个同步点,两个线程可以交换数据 Exchanger通过exchange方法进行交换,如果线程A先执行exchange方法,他会一直等待线程B也执行exchange方法,当两个线程都到达同步点时,就会交互数据。 业务场景 有一个典型的例子,就是一手交钱,一手交货,假如A是绑匪,绑架了B的女儿,需要B交出一千万来换,双方约定在...

2018-11-19 18:58:12 195

原创 三、Java多线程并发同步之CountDownLatch

概述 CountDownLatch:计数器,允许一个或多个线程一直等待,直到其他线程执行完后再执行。计数器的初始值为线程的数量 ,每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务 。 业务场景 例如用户模拟多个用户并发访问某个API,测试API的性能;如有一个任务,需要等其他5个任务执行完成后,才能执行。 实现 CountDownLatch(i...

2018-11-19 18:56:52 286

原创 二、Java多线程并发同步之CyclicBarrier

概述 CyclicBarrier:可循环屏障,允许一组线程全部等待的同步辅助工具。一组线程互相等待,直到所有线程都到达某个公共屏障点(也可以叫同步点) 。它可以在等待线程之后重新使用。这个屏障之所以用循环修饰,是因为在所有的线程释放彼此之后,这个屏障是可以重新使用的 。 CyclicBarrier支持一个可选的Runnable命令,在一组线程中的最后一个线程到达屏障点之后(但在释放所有线程之前),...

2018-11-19 18:55:53 218

原创 一、Java多线程并发同步之Semaphore

一、多线程并发同步之Semaphore 概念 Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,用来管理资源,以保证它们能够正确、合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量。用我们常见的说法就是用来控制并发数。 信号量是一个非负整数 。 业务场景 以售票窗口买票为例,假设火车站有两个售票窗口,一开始两个窗口都是没有人的,这是同时来了10个人买票,每次只...

2018-11-13 19:16:53 322

原创 八、SpringCloud之Config分布式配置中心

SpringCloud Config为微服务架构的微服务提供统一集中的外部配置支持,便于统一管理服务配置。SpringCloud Config分为服务端和客户端两部分。 服务端也就是分布式配置中心,用于连接配置服务器获取配置信息。 客户端是通过配置中心在启动时获取对应业务相关的配置信息。 中文文档: https://springcloud.cc/spring-cloud-config...

2018-08-24 23:06:51 171

原创 七、SpringCloud之路由网关Zuul

Zuul的主要功能是对请求的路由转发和过滤,路由功能将外部请求转发到具体的微服务实例,过滤功能负载对请求进行校验、服务聚合等操作,Zuul与Eureka整合,将自身注册到服务中心,通过Eureka统一管理从Eureka中获取相应的微服务。 官方文档: http://projects.spring.io/spring-cloud/spring-cloud.html#_router_and_fil...

2018-08-22 23:07:21 144

原创 六、SpringCloud之Hystrix断路器

1、Hystrix介绍 雪崩:微服务架构中服务与服务之间会相互调用,相互依赖,如果由于网络或其他原因导致某个微服务的调用响应时间过长或不可用,大量请求进来可能就会导致系统资源占用过多,从而引起系统崩溃,也就是所谓的“雪崩效应”。 Hystrix是一个用于处理分布式系统的延迟和容错的 框架,当系统中某个服务发生故障或当调用一个特定的服务达到一定阈值(默认5秒失败20次) 后,通过断路器的故障监...

2018-08-21 23:20:46 717

原创 五、SpringCloud之Feign负载均衡

Feign是一个声明式Web服务客户端,能让编写web客户端更加简单,创建一个接口并在上面添加注解去使用Feign,它支持Feign注解和JAX-RS注解。Feign也支持可插拔式的编码器和解码器,Feign 默认整合了Eureka和Ribbon实现客户端负载均衡。 Feign核心是使得编写Java Http客户端变得更容易,使用接口和注解(类似Mybatis中Dao和@Mapper)来完成对服...

2018-08-15 14:51:14 5157

原创 四、SpringCloud之Ribbon负载均衡

Ribbon是一个客户端的负载均衡(Load Balance)工具,通过基于多种负载均衡算法达到系统的高可用(HA) 官方资料: https://github.com/Netflix/ribbon https://github.com/Netflix/ribbon/wiki/Getting-Started 以下内容是基于上一节的工程,使用Ribbon+RestTemplate 实现服务间通...

2018-08-15 10:45:08 219

原创 三、SpringCloud之服务注册与发现组件--Eureka

1、Euraka介绍 Euraka是Netflix开发的一个服务注册与发现的子模块,是基于REST的服务框架,遵循AP原则 Eureka包含两个组件:Eureka Server和Eureka Client Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册 。 Eureka github 地址: https://github.com/Ne...

2018-08-13 23:13:55 657

原创 二、REST风格微服务架构搭建

使用SpringBoot、SpringCloud、Mybatis创建一个简单CURD的Rest风格微服务架构。 源码:https://github.com/hnyydp/microservice 项目代码结构: 1、父工程建立 首先建立一个父项目microservice,用来统一管理项目依赖版本,注意创建的是maven pom项目。 pom.xml <properties&g...

2018-08-08 09:31:56 1396

原创 一、SpringCloud介绍

微服务:是指具体解决某个问题的一个服务应用,强调的是服务大小。 微服务架构:是一种架构模式或架构风格,将单一的应用拆分中多个小应用,每个应用都运行在自己的进程中。核心是将传统的一站式应用,按照业务拆分成一个个的服务,每个微服务提供单个业务功能。能够拥有自己独立的数据库。 SpringCloud:是一系列框架的有序集合 ,是基于SpringBoot提供的一套微服务的解决方案。通过Spring B...

2018-08-08 09:25:16 441

原创 SpringBoot整合Freemarker模板引擎

1、引入Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> <

2018-07-19 10:53:16 887

空空如也

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

TA关注的人

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