那些让清英受益终生的书

昨天晚上表弟问我,有什么书可以推荐给他读一读,于是向他推荐了一些书,这些书对于我来说是受益终生的,所以希望分享给大家,希望对大家有帮助!本文包括我写的一些读书笔记和感悟。

做任何事情之前掌握方法论很重要,读书也有方法论,所以首先推荐两本书《如何阅读一本书》和《杠杆阅读术》,仔细阅读这两本书之后,并加以练习,可以提高阅读质量。

Read more

《kubernetes官方文档》翻译邀请

过年好,2月并发网组织大家翻译《kubernetes官方文档》,欢迎有兴趣的同学参与。(想参与更多翻译

如何领取

通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。领取完成之后,建议在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。请谨慎领取,并发网是非盈利组织,没办法去跟进每一篇译文的进展,所以很多文章领取了没有翻译,会导致文章长时间没人翻译。

Read more

创建线程以及线程池时候要指定与业务相关的名字,以便于追溯问题

3.9 创建线程以及线程池时候要指定与业务相关的名字,以便于追溯问题

日常开发中当一个应用中需要创建多个线程或者线程池时候最好给每个线程或者线程池根据业务类型设置具体的名字,以便在出现问题时候方便进行定位,下面就通过实例来说明不设置时候为何难以定位问题,以及如何进行设置。

Read more

一个有关定时生产与消费的问题

一、前言

本文来讲解遇到的一个有意思的与定时器相关的生产消费模型,模型如下图:

 

  • 生产者是一个定时器线程,使用ScheduledThreadPoolExecutor的scheduleAtFixedRate控制每间隔3s投递一个元素到队列1,2,3(使用offer方法)。比如第1s放入一个元素到队列1,2,3,这时候每个队列里面有一个元素。然后第4s在放入一个元素到队列1,2,3,如果没有消费线程的时候这时候每个队列里面有2个元素.
  • 队列为有界阻塞队列(ArrayBlockingQueue),队列元素的大小设置为6个元素。
  • 消费者是一个定时器线程,使用ScheduledThreadPoolExecutor的scheduleAtFixedRate控制每间隔1s轮询取出每个队列里面全部元素(使用poll方法)。比如第1s取出队列1里面的全部元素,第2s取出队列2里面的元素,第3s取出队列3里面的元素,第4s取出队列1里面的元素….
    并且如果发现当前队列为空则会结束当前s的任务,然后等下1s到了的时候从下一个队列开始取。
  • 消费线程启动后,生产线程才启动,生产者和消费者线程优先级相同
  • 消费线程和生产线程里面没有耗时操作,或者耗时都不超过1s。这个保证定时器任务不会被延迟执行。

问题:每个队列里面最多时候会有几个元素?

Read more

《Istio官方文档》配置请求路由

原文链接 译者:suzhuo

配置请求路由

这里将向你展示如何根据权重和HTTP请求头去配置动态路由。

Read more

Springboot之spring-boot模块

一、前言

spring-boot模块提供了一些特性用来支持springboot中其他模块,这些特性包含如下:

  • SpringApplication类提供了静态方法以便于写一个独立了spring应用程序,该类的主要职责是create和refresh一个合适的Spring 应用程序上下文(ApplicationContext)
  • 一流的外部配置的支持(application.properties)
  • 提供了便捷的应用程序上下文(ApplicationContext)的初始化器,以便在ApplicationContext使用前对其进行用户定制。
  • 给web应用提供了一个可选的web容器(目前有Tomcat或Jetty)

Read more

《Istio官方文档》Kubernetes快速开始

Kubernetes快速开始

在Kubernetes群集中安装和配置Istio时,可以参考如下快速入门说明。

先决条件

以下说明要求您有权访问启用了RBAC(基于角色的访问控制)的Kubernetes 1.7.3或更新的群集。你还需要安装1.7.3或更新版本。如果您希望启用自动注射支架,您需要打开群集中的Kubernetes alpha功能。 Read more

泥瓦匠聊并发编程:线程与多线程必知必会(基础篇)

本文目录

  • 线程与多线程
  • 线程的运行与创建
  • 线程的状态

1 线程与多线程

线程是什么? 线程(Thread)是一个对象(Object)。用来干什么?Java 线程(也称 JVM 线程)是 Java 进程内允许多个同时进行的任务。该进程内并发的任务成为线程(Thread),一个进程里至少一个线程。

Java 程序采用多线程方式来支持大量的并发请求处理,程序如果在多线程方式执行下,其复杂度远高于单线程串行执行。那么多线程:指的是这个程序(一个进程)运行时产生了不止一个线程。

Read more

Springboot之spring-boot-autoconfigure模块

一、前言

Spring的出现给我们管理bean的依赖注入提供了便捷,但是当我们需要使用通过pom引入的jar里面的一个bean时候,还是需要手动在xml配置文件里面主要注入的bean 。springboot则可以依据classpath里面的依赖内容来自动配置bean到IOC容器,Auto-configuration会尝试推断哪些beans是用户可能会需要的。比如如果HSQLDB包在当前classpath下,并且用户并没有配置其他数据库链接,这时候Auto-configuration功能会自动注入一个基于内存的数据库连接到应用的IOC容器。但是要开启这个自动配置功能需要添加@EnableAutoConfiguration注解。

Read more

使用Java函数接口及lambda表达式隔离和模拟外部依赖更容易滴单测

作者:lovespcc

概述

单测是提升软件质量的有力手段。然而,由于编程语言上的支持不力,以及一些不好的编程习惯,导致编写单测很困难。

最容易理解最容易编写的单测,莫过于独立函数的单测。所谓独立函数,就是只依赖于传入的参数,不修改任何外部状态的函数。指定输入,就能确定地输出相应的结果。运行任意次,都是一样的。在函数式编程中,有一个特别的术语:“引用透明性”,也就是说,可以使用函数的返回值彻底地替代函数调用本身。独立函数常见于工具类及工具方法。

Read more

《软件架构模式》-第三章 微内核系统结构

原文地址  译者:克里斯托刘

微内核架构模式(有时被称为插件架构模式)是实现基于产品应用程序的一种自然模式。基于产品的应用程序是已经打包好并且拥有不同版本,可作为第三方插件下载的。然后,很多公司也在开发、发布自己内部商业应用像有版本号、说明及可加载插件式的应用软件(这也是这种模式的特征)。微内核系统可让用户添加额外的应用如插件,到核心应用,继而提供了可扩展性和功能分离的用法。

Read more

SpringBoot之spring-boot-load模块

一、前言

正常情况下classloader只能找到jar里面当前目录或者文件类里面的*.class文件。为了能够加载嵌套jar里面的资源之前都是把嵌套jar里面的class文件和应用的class文件打包为一个jar,这样就不存在嵌套jar了,但是这样做就不能很清晰的知道应用到底依赖了哪些东西,哪些是应用自己的,另外多个jar里面的class可能内容不一样但是文件名却一样。springboot中spring-boot-loader就是为优雅解决这个问题而诞生的。

Read more

Springboot模块组成

1.1、 spring-boot模块

该模块提供了一些特性用来支持springboot中其他模块,这些特性包含如下。

  • SpringApplication类提供了静态方法以便于写一个独立了spring应用程序,该类的主要职责是create和refresh一个合适的Spring 应用程序上下文(ApplicationContext)
  • 给web应用提供了一个可选的web容器(目前有Tomcat或Jetty)
  • 一流的外部配置的支持(application.properties)
  • 提供了便捷的应用程序上下文(ApplicationContext)的初始化器,以便在ApplicationContext使用前对其进行用户定制。

Read more

《Istio官方文档》—— 错误注入

原文链接  译者:carvendy

  当使者边车/代理提供了一大堆故障恢复机制让服务在Istio上运行,这依然有必要去测试端对端的故障恢复作为了应用的整体功能。错误配置的故障策略(例如:矛盾的或者服务响应的超时限制)会让在程序中的服务界定为不可用,影响到我们希望的结果。 Read more

《Istio官方文档》—— 故障处理

原文链接  译者:carvendy

故障处理

   使者在故障恢复中,提供了一个拆箱即用的集合,可以更方便地在服务中移除应用。特性包括:

  1. 超时
  2. 限定的重试,在重试之间有超时预计与数值的波动性。
  3. 有限的并发连接数和请求的上游服务。
  4. 对于负载均衡池里的成员,进行动态(周期性的)健康检查。
  5. 细粒度的断路器(通过健康检查)—— 在负载均衡池里每个实例都需要通过。

Read more

return top