归档之于 ‘ 2017 年十二月

并发包中ThreadLocalRandom类原理剖析

2.2、 并发包中ThreadLocalRandom类原理剖析

ThreadLocalRandom类是JDK7在JUC包下新增的随机数生成器,它解决了Random类在多线程下多个线程竞争内部唯一的原子性种子变量而导致大量线程自旋重试的不足。本节首先讲解下Random类的实现原理已经它在多线程下使用的局限性,然后引入ThreadLocalRandom类,通过讲解JDK8中ThreadLocalRandom的实现原理来说明ThreadLocalRandom是如何解决的Random类的不足。

阅读全文

什么是服务网格?为什么你需要它?

原文链接   译者:carvendy

什么是服务网格?为什么你需要它?

服务网格是专注于基础设施层,让服务可以更安全、更快、更可靠地通信。如果构建云应用,你就需要服务网格。

  在过去一年,服务网格已经呈现出,并在云原生栈中起着决定性的作用。像一些高流量的公司,比如说Paypal,Lyft,Ticketmaster, 还有Credit Karma,在今年一月份就已经在自己的产品中使用了服务网格。Linkerd,一个开源的为云原生应用而生的服务网格,成为了云原生计算设施的官方项目。精确地来说,什么是服务网格呢?为什么和它有关系呢?

  在本文中,通过过去十年的应用架构,给服务网格定义和它的组织体系。从有关系的但是不同的API网关、边缘代理、服务总线的组成,来区分服务网格。描述哪里是服务网格顶层,还有期待它是由什么组成的,并使得云计算基础设施进化的?

阅读全文

《Spring Cloud Config官方文档》之推送通知和Spring Cloud总线

9. 推送通知和Spring Cloud总线

许多源代码存储库提供者(例如Github,Gitlab或Bitbucket)会通过webhook通知你存储库中的变化。您可以通过提供商的用户界面将webhook配置为您感兴趣的URL和一组事件。例如, Github 将通过一个包含提交列表的JSON主体和一个等于“push”的头部“X-Github-Event”来POST webhook。如果您在spring-cloud-config-monitor库中添加了依赖项并在Config Server中激活了Spring Cloud Bus,则会启用“/ monitor”节点。

阅读全文

《Maven官方文档》Maven 开发

原文链接   译者:carvendy

Maven 开发

这文档描述怎么入门开发Maven。这是一个独立页来描述怎么构建Maven的。

找一些工作来做

首先你需要一些事情来做!解决方案可以在几个JIRA项目中找到。

  • JIRA解决方案 当你找到一个你需要的解决方案,工作想在解决方案中加入日志,所核心开发和其他人民在寻找以了解其他人已经在什么。

阅读全文

伪共享

2.2.9 伪共享

2.2.9.1什么是伪共享

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

阅读全文

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

10.  Spring Cloud Config客户端

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

阅读全文

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

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

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

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

原文链接

第二部分 Spring Cloud 配置

1.3.5.BUILD-SNAPSHOT

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

阅读全文

线程不安全的SimpleDateFormat

8.5 SimpleDateFormat是线程不安全的

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

阅读全文

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

原文链接

7. 提供纯文本

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

阅读全文

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

原文链接

6. 提供替代格式

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

阅读全文

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

原文链接

5. Spring Cloud Config Server

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

阅读全文

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则一直使用链表进行存储。

阅读全文

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

原文链接

5.2 健康指标

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

阅读全文

诡异的类型转换

一、前言

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

阅读全文

return top