《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的实现提供。

阅读全文

诡异的类型转换

一、前言

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

阅读全文

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

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

阅读全文

《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客户端。

阅读全文

《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 报告程序是否在线或宕机。

阅读全文

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

原文链接

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

图3.1 微服务图

阅读全文

《Spring Cloud Netflix官方文档》2. 服务发现:Eureka服务器

原文链接 译者:Acamy

2. 服务发现:Eureka服务器

2.1 如何创建Eureka服务器

引用org.springframework.cloud的spring-cloud-starter-eureka-server就可以创建Eureka服务器。在当前Spring Cloud版本中如何进行详细设置可以查看Spring Cloud工程页面

阅读全文

《Spring Cloud Netflix官方文档》1.服务发现:Eureka客户端

原文链接 译者:Acamy

1.     服务发现:Eureka客户端

服务发现是微服务架构的关键原则之一。使用手动配置或一些约定方式来处理多服务多实例的方式是非常困难,并且十分脆弱的。Eureka同时是Netflix服务发现的服务端和客户端。服务端可以通过配置和部署实现高可用,实现方式是每个服务端对注册的服务复制他们的状态到其他的服务端。

阅读全文

《Spring Cloud Netflix官方文档》路由和过滤器: Zuul

原文链接

路由是一个微服务架构体系中必须的一部分,比如说,“/” 映射你的web根应用,“/api/users” 映射到用户服务,“/api/shop” 映射到购物服务上. Zuul 是 Netflix 公司的一个基于JVM的服务器端带负载均衡功能的路由。

阅读全文

return top