08 2020 档案
摘要:前言 如果开发人员不了解虚拟机诸多技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。 代码清单可以从华章图书的网站(http://www.hzbook.com/)上下载。 Java 程序员把控制内存的权力交给了Java虚拟机,所以可以在编码的时候享受自动内存管理的诸多优势,不过也正因为这
阅读全文
摘要:Java 的 IO 流分为两大类: 字节流 字符流 从超类到实现类,Java IO 流的继承关系大致如下图: InputStream InputStream 就是 Java 标准库提供的最基本的字节输入流。它位于java.io这个包里。java.io包提供了所有同步IO的功能。 要特别注意的一点是,
阅读全文
摘要:@SpringBootApplication @SpringBootApplication 是启动类上的注解,它组合了3个其他的注解。 @SpringBootConfiguration:将该类声明为配置类,这个注解实际上是@Configuration注解的特殊形式。 @EnableAutoConfi
阅读全文
摘要:Spring Cloud Gateway 介绍 特点: 限流 路径重写 动态路由 集成 Spring Cloud DiscoveryClient 集成 Hystrix 断路器 和 zuul 对比: zuul 是 Netflix 公司的开源产品,Spring Cloud Gateway 是 Sprin
阅读全文
摘要:服务网关 Spring Cloud 中,网关主要有两种实现方案: Zuul Spring Cloud Gateway 由于每一个微服务的地址都有可能发生变化,无法直接对外公布这些服务地址,基于安全以及高内聚低耦合等设计,我们有必要将内部系统和外部系统做一个切割。 一个专门用来处理外部请求的组件,就是
阅读全文
摘要:报错 在 Spring Cloud 项目中使用 Zuul 组件,结果报错: Failed to read artifact descriptor for org.springframework.cloud:spring-cloud-starter-netflix-zuul:jar:2.2.2.REL
阅读全文
摘要:Resilience4j 介绍 Resilience4j 是 Spring Cloud Greenwich 版推荐的容错解决方案,相比 Hystrix , Resilience4j 专为 java8 以及函数式编程而设计。 Resilience4j 主要提供了如下功能: 断路器 限流 基于信号量的隔
阅读全文
摘要:什么是 OpenFeign 前面无论是基本调用,还是 Hystrix ,我们实际上都是通过手动调用 RestTemplate 来实现远程调用。 使用 RestTemplate 存在一个问题:繁琐,每一个请求,参数不同,请求地址不同,返回数据类型不同,其他都是一样的,所以我们希望能够对请求进行简化。
阅读全文
摘要:服务注册 服务注册就是把一个微服务注册到 Eureka Server 上,这样,当其他服务需要调用该服务时,只需要从 Eureka Server 上查询该服务的信息即可。 这里创建一个 provider ,作为服务提供者,创建项目时,选择 Eureka Client 依赖,这样,当服务创建完成后,简
阅读全文
摘要:基本介绍 Hystrix 叫做断路器/熔断器。 微服务系统中,整个系统出错的概率非常高,因为在微服务系统中,涉及到的模块太多了,每一个模块出错,都有可能导致整个服务出错,当所有模块都稳定运行时,整个服务才算稳定运行。 我们希望在整个系统中,某个模块无法正常工作时,能够通过我们提前配置的一些东西,来使
阅读全文
摘要:前言 项目结构如下: 我想打包父项目 Spring Cloud 下的子项目 Provider ,结果报错了。 解决办法 先对父项目 Spring Cloud 进行 install, 双击即可: 再对子项目 provider 进行 install,双击即可: 最后对子项目 provider 进行pac
阅读全文
摘要:1、查看已有容器: // 查看正在运行的容器 docker ps // 查看所有的容器,包括停止运行的容器 docker ps -a 2、查看已有镜像: docker images 3、下载新镜像: docker pull <镜像名> // 示例 // 下载 ubuntu 16.04 版本的镜像文件
阅读全文
摘要:什么是反射? 反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息。 反射的作用 反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法。 Class 类 class 是一个 java 关键字,表示声明一个类。 除了int等基本类型外,Java的其他类型
阅读全文
摘要:使用 Deque 我们知道,Queue是队列,只能一头进,另一头出。 如果把条件放松一下,允许两头都进,两头都出,这种队列叫双端队列(Double Ended Queue),学名Deque。 Java集合提供了接口Deque来实现一个双端队列,它的功能是: 既可以添加到队尾,也可以添加到队首; 既可
阅读全文
摘要:使用 Queue 队列(Queue)是一种经常使用的集合。Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。 它和List的区别在于,List可以在任意位置添加和删除元素,而Queue只有两个操作: 把元素添加到队列末尾; 从队列头部取出元素。 在Jav
阅读全文
摘要:使用 Set Set用于存储不重复的元素集合,它主要提供以下几个方法: 将元素添加进Set:boolean add(E e) 将元素从Set删除:boolean remove(Object e) 判断是否包含元素:boolean contains(Object e) 一个示例: public cla
阅读全文
摘要:使用 Map 在 java 集合中,Map 并不在接口 Collection 之中。 接口 Map 的常用实现类有: EnumMap 类 HashMap 类 TreeMap 类(TreeMap 是接口 SortedMap 的实现类,接口 SortedMap 是 Map 的子接口) Propertie
阅读全文
摘要:Java Collection 简介 Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。 Java的java.util包主要提供了以下三种类型的集合: **List:**一种有序列表的集合,例如,按索引排列的Student的List;
阅读全文