伪共享

2.2.9 伪共享

2.2.9.1什么是伪共享

计算机系统中为了解决主内存与CPU运行速度的差距,在CPU与主内存之间添加了一级或者多级高速缓冲存储器(Cache),这个Cache一般是集成到CPU内部的,所以也叫 CPU Cache,如下图是两级cache结构:

Read more

《Spring Cloud Config官方文档》之Spring Cloud Config客户端

10.  Spring Cloud Config客户端

Spring Boot应用程序可以立即利用Spring Config服务器(或应用程序开发人员提供的其他外部属性资源),还可以获取与Environment更改事件有关的一些其他有用的功能。

Read more

线程池使用FutureTask时候需要注意的一点事

8.4 线程池使用FutureTask时候需要注意的一点事

线程池使用FutureTask的时候如果拒绝策略设置为了 DiscardPolicyDiscardOldestPolicy并且在被拒绝的任务的Future对象上调用无参get方法那么调用线程会一直被阻塞。 Read more

《Spring Cloud Config官方文档》快速启动

原文链接

第二部分 Spring Cloud 配置

1.3.5.BUILD-SNAPSHOT

Spring Cloud 配置为分布式系统中的外部配置提供服务器和客户端支持。借助Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念与Spring Environment 和  PropertySource 抽象是一样的,所以它们非常适合Spring应用程序,但可以与任何运行在任何语言的应用程序一起使用。当应用程序从开发到测试转移到部署管道时,您可以管理这些环境之间的配置,并确保应用程序具有在迁移时所需运行的所有内容。服务器存储后端的默认实现使用git,因此它可以轻松地支持标记版本的配置环境,并且可以通过广泛的工具来访问管理内容。使用Spring配置添加替代实现并插入它们是很容易的。

Read more

线程不安全的SimpleDateFormat

8.5 SimpleDateFormat是线程不安全的

SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析或者格式化会导致程序出错,本节就讨论下它为何是线程不安全的,以及如何避免。

Read more

《Spring Cloud Config官方文档》之提供纯文本

原文链接

7. 提供纯文本

而不是使用Environment抽象(或YAML或其他属性格式中的替代表示形式),应用程序可能需要通用的纯文本配置文件,并且是针对其环境来定制。配置服务器通过/{name}/{profile}/{label}/{path} 在“名称”,“配置文件”和“标签”与常规环境节点具有​​相同含义的位置处提供了这些附加节点,但“路径”是文件名(例如log.xml)。此节点的源文件与环境节点的位置相同:使用属性或YAML文件相同的搜索路径,但不会汇总所有匹配的资源,并且只返回第一个匹配的资源。

Read more

《Spring Cloud Config官方文档》之提供替代格式

原文链接

6. 提供替代格式

来自环境节点的默认JSON格式非常适合Spring应用程序使用,因为它直接映射到 Environment抽象。如果您愿意,您可以通过向资源路径(“.yml”,“.yaml”或“.properties”)添加后缀来使用与YAML或Java属性相同的数据。对于那些不关心JSON节点结构的应用程序,或者它们提供的额外的元数据,那么这对于消费是有用的。例如,一个不使用Spring的应用程序可能会受益于这种方法的简单性。

Read more

《Spring Cloud Config官方文档》之Spring Cloud Config Server

原文链接

5. Spring Cloud Config Server

服务器为外部配置(名称 – 值对或同等的YAML内容)提供了一个HTTP、基于资源的API。服务器很容易使用@EnableConfigServer注释嵌入到Spring Boot应用程序中 。所以这个应用是一个配置服务器:

Read more

Java8中的WeakHashMap

什么是WeakHashMap?

WeakHashMap是基于java弱引用实现的HashMap,感觉一句话就讲的差不多了嘿嘿。
先看看它的定义:

public class WeakHashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>

如上,在定义方面和HashMap并没有什么不同。而且在结构上,基本和HashMap一致。在Java8中,唯一存储上的不同点就是,当冲突的key变多时,HashMap引入了二叉树(红黑树)进行存储,而WeakHashMap则一直使用链表进行存储。

Read more

《Spring Cloud Config官方文档》加密和解密

原文链接

5.2 健康指标

Config Server 附带一个健康指标(Health Indicator),用于检查配置的 EnvironmentRepository 是否正常工作。默认情况下,它会为 EnvironmentRepository请求一个名为 app 的应用程序,这个默认的profile和label由EnvironmentRepository的实现提供。

Read more

诡异的类型转换

一、前言

最近在做应用迁移时候遇到了一个诡异的类型转换问题,感觉比较有意思,就记录下来和大家分享下。

Read more

《Spring Cloud Config官方文档》翻译邀请

12月入冬,本月并发网继续组织翻译Spring Cloud大家庭,本文是第二篇《Spring Cloud Config官方文档》,欢迎有兴趣的同学参与。

Read more

《Spring Cloud Netflix官方文档》7.声明式 REST 客户端: Feign

原文链接

Feign 是一个声明式的web服务客户端。它使得编写web服务客户端更简单,创建一个接口并加上注解就能使用Feign了,它还支持JAX-RS类型的注解,可插入式的编码和解码,Spring cloud 为他加入了spring mvc的注解支持,以及在spring web开发过程中默认使用同样的 HttpMessageConverters 。Spring Cloud整合了Ribbon和Eureka为使用feign的过程中提供了一个负载均衡的http客户端。

Read more

《Spring Cloud Netflix官方文档》10. 使用 Sidecar支持多语言

原文链接

你有non-jvm语言也想使用Eureka,Ribbon和Config Server? Spring Cloud Netflix Sidecar灵感来自Netflix Prana,它包含一个简单的http api去获取给定服务的所有实例(主机和端口)。你也可以通过嵌入式Zuul代理代理服务调用,Zuul 代理从Eureka获取全部路由信息。可直接通过主机查找或通过Zuul代理访问Spring Cloud Config Server。non-jvm程序需要实现健康检查,这样Sidecar 才能向eureka 报告程序是否在线或宕机。

Read more

《Spring Cloud Netflix官方文档》3.熔断器:Hystrix Clients

原文链接

Netfilix创建了一个名为Hystrix的库,实现了熔断器模式。在微服务架构中,它通常有多个服务调用层。

图3.1 微服务图

Read more

return top