客户端负载均衡器:Rbbion Ribbon是一个客户端负载均衡器,可以让您对HTTP和TCP客户端的行为进行大量控制。 Feign已使用Ribbon,因此如果您使用的是@FeignClient,则此部分也适用。 Ribbon中的一个核心概念是指定客户端的概念.每个负载均衡器都是组件集成的一部分,这 ...
分类:
编程语言 时间:
2020-01-14 10:10:54
阅读次数:
100
多线程 (1) 掌握Executors可以创建的三种线程池的特点及适用范围。 1.继承Thread类,重写父类run()方法 2.实现runnable接口 3.使用ExecutorService、Callable、Future实现有返回结果的多线程(JDK5.0以后) (2) 多线程同步机制。 在需 ...
分类:
编程语言 时间:
2020-01-13 21:47:28
阅读次数:
96
一、ThreadPoolExecutor的重要参数 corePoolSize:核心线程数 核心线程会一直存活,及时没有任务需要执行 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关 ...
分类:
编程语言 时间:
2020-01-13 16:10:46
阅读次数:
86
用途: ScheduledThreadPoolExecutor(计划任务线程池)主要用于执行一些需要延时操作或者需要重复操作的任务, Spring框架自带计划任务功能 场景一: 延时操作, 提供给客户统计数据功能, 如果高峰执行肯定影响系统运行效率,那么规定只有下午四点以后才能执行统计, 那么就需要 ...
分类:
编程语言 时间:
2020-01-13 16:07:11
阅读次数:
81
简单介绍 线程池是池化技术的一种,对线程复用、资源回收、多任务执行有不错的实践。阅读源码,可以学习jdk的大师对于线程并发是怎么池化的,还有一些设计模式。同时,它也能给我们在使用它的时候多一种感知,出了什么问题可以马上意识到哪里的问题。 使用范例 我们使用一个线程池,直接通过jdk提供的工具类直接创 ...
分类:
编程语言 时间:
2020-01-12 18:26:01
阅读次数:
78
背景 我司在很久之前,一位很久之前的同事写过一个文档转图片的服务,具体业务如下: 文档预览的整体过程如以上所说,老的转码服务现在什么问题呢? 后来机缘巧合,这个程序的维护落到的菜菜头上,维护了一周左右,大约重启了10多次,终于忍受不了了,重新搞一个吧。仔细分析过后,刨除实际文档转码的核心操作之外,整 ...
分类:
编程语言 时间:
2020-01-11 09:56:18
阅读次数:
69
1,指定 Protocol,初始化相应的 Endpoint,我们分析的是 NioEndpoint;2,init 过程:在 NioEndpoint 中做 bind 操作;3,start 过程:启动 worker 线程池,启动 1 个 Acceptor 和 2 个 Poller,当然它们都是默认值,可配 ...
分类:
其他好文 时间:
2020-01-11 00:28:42
阅读次数:
80
1. 继承Thread类,重写run方法 2. 实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3. 通过Callable和FutureTask创建线程 4. 通过线程池创建线程 前面两种可以归结为一类:无返回值,原因很简单 ...
分类:
编程语言 时间:
2020-01-11 00:28:25
阅读次数:
97
Tomcat 调优大致分为两大类。 1、Tomcat的自身调优采用动静分离节约 Tomcat 的性能:ngnix+tomcat调整 Tomcat 的线程池:修改server.xml中的Executor标签调整 Tomcat 的连接器:修改server.xml中的Connector标签修改 Tomca ...
分类:
其他好文 时间:
2020-01-11 00:01:12
阅读次数:
77
用途: 用于自动化管理线程, 开发人员只需要关注业务实现, 无需关注线程的管理, 降低开发要求 方法解释: Executor //执行任务(若执行线程有任务 则进入任务队列等待工作线程拉取) 无返回值 void execute(Runnable command); ExecutorService / ...
分类:
编程语言 时间:
2020-01-10 22:25:38
阅读次数:
105