摘要: 本章主要内容 结合微服务使用服务网关 使用Spring Cloud和Netflix Zuul实现服务网关 在Zuul中映射微服务路由 构建过滤器以使用关联ID并进行跟踪 使用Zuul进行动态路由 在像微服务架构这样的分布式架构中,需要确保跨多个服务调用的关键行为的正常运行,如安全、日志记录和用户跟踪 阅读全文
posted @ 2019-12-02 21:33 mongotea 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 当一个@HystrixCommand被执行时,它可以使用两种不同的隔离策略——THREAD(线程)和 SEMAPHORE(信号量)来运行。在默认情况下,Hystrix 以 THREAD隔离策略运行。用于保护调用的每个Hystrix命令都在一个单独的线程池中运行,该线程池不与父线程共享它的上下文。这意 阅读全文
posted @ 2019-12-02 21:30 mongotea 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 在基于微服务的应用程序中,开发人员通常需要调用多个微服务来完成特定的任务。在不使用舱壁模式的情况下,这些调用默认是使用同一批线程来执行调用的,这些线程是为了处理整个Java容器的请求而预留的。在存在大量请求的情况下,一个服务出现性能问题会导致Java容器的所有线程被刷爆并等待处理工作,同时堵塞新请求 阅读全文
posted @ 2019-12-02 21:27 mongotea 阅读(1239) 评论(0) 推荐(0) 编辑
摘要: 我们将会看到两大类别的Hystrix实现。在第一个类别中,我们将使用Hystrix断路器包装许可证服务和组织服务中所有对数据库的调用。然后,我们将使用Hystrix包装许可证服务和组织服务之间的内部服务调用。虽然这是两个不同类别的调用,但是Hystrix的用法是完全一样的。图5-4展示了使用Hyst 阅读全文
posted @ 2019-12-02 21:26 mongotea 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 本章主要内容 实现断路器模式、后备模式和舱壁模式 使用断路器模式来保护微服务客户端资源 当远程服务失败时使用Hystrix 实施Hystrix的舱壁模式来隔离远程资源调用 调节Hystrix的断路器和舱壁的实现 定制Hystrix的并发策略 所有的系统,特别是分布式系统,都会遇到故障。如何构建应用程 阅读全文
posted @ 2019-12-02 21:24 mongotea 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 现在有一个基于Spring的Eureka服务器正在运行。在本节中,我们将配置组织服务和许可证服务,以便通过Eureka服务器来注册它们自身。这项工作是为了让服务客户端从Eureka注册表中查找服务做好准备。在本节结束时,读者应该对如何通过Eureka注册Spring Boot微服务有一个明确的认识。 阅读全文
posted @ 2019-12-02 21:23 mongotea 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 本系列的文章是自己在边学习购买的书籍《Spring微服务实战》时,边记录下来的,用于加深学习效果和以后的回顾,如若侵权,请告知,我会及时删除。 阅读全文
posted @ 2019-12-02 21:16 mongotea 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 本章主要内容 为什么服务发现对基于云的应用程序环境很重要 与传统的负载均衡方法作对比,了解服务发现的优缺点 建立一个Spring Netflix Eureka服务器 通过Eureka注册一个基于Spring Boot的微服务 使用Spring Cloud和Netflix的Ribbon库来完成客户端负 阅读全文
posted @ 2019-12-02 21:04 mongotea 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 如果在Spring Cloud配置服务器上的某个属性的值是加密的,但提供的加密串是错误的, 比如将licensingservice.yml文件中的下列属性: spring.datasource.password: "{cipher}11db9cabb9e352467114f7e91e0f83d5d8 阅读全文
posted @ 2019-12-02 20:53 mongotea 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 在默认情况下,Spring Cloud配置服务器在应用程序配置文件中以纯文本格式存储所有属性,包括像数据库凭据这样的敏感信息。 将敏感凭据作为纯文本保存在源代码存储库中是一种非常糟糕的做法。遗憾的是,它发生的频率比我们想象的要高得多。Spring Cloud Config可以让我们轻松加密敏感属性。 阅读全文
posted @ 2019-12-02 20:50 mongotea 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 在上一章中,我们构建了一个简单的许可证服务框架,这个框架只是返回一个代表数据库中单个许可记录的硬编码Java对象。在下一个示例中,我们将构建许可证服务,并与持有许可数据的Postgres数据库进行交流。 我们将使用Spring Data与数据库进行通信,并将数据从许可证表映射到保存数据的POJO。数 阅读全文
posted @ 2019-12-02 20:49 mongotea 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 在上一节的LicenseService类中,读者可能已经注意到,在getLicense()中使用了来自config.getExampleProperty()的值来设置license.withComment()的值。所指的代码如下: public License getLicense(String o 阅读全文
posted @ 2019-12-02 20:49 mongotea 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 1、构建jar:在idea中导入工程后,使用maven的package命令打包为jar:configurationserver-0.0.1-SNAPSHOT.jar。 2、修改配置文件application.yml为如下内容: server: port: 8888 spring: profiles: 阅读全文
posted @ 2019-12-02 20:48 mongotea 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 以第3章示例:spmia-chapter3-master中的子项目confsvr为例说明: 其pom文件内容摘要如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-paren 阅读全文
posted @ 2019-12-02 20:47 mongotea 阅读(3980) 评论(0) 推荐(0) 编辑
摘要: 本章主要内容 将服务配置与服务代码分开 配置Spring Cloud配置服务器 集成Spring Boot微服务 加密敏感属性 在某种程度上来说,开发人员是被迫将配置信息与他们的代码分开的。毕竟,自上学以来,他们就一直被灌输不要将硬编码带入应用程序代码中的观念。许多开发人员在应用程序中使用一个常量类 阅读全文
posted @ 2019-12-02 20:46 mongotea 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 服务引导(图2-6中的步骤2)发生在微服务首次启动并需要加载其应用程序配置信息的时候。图2-8为引导处理提供了更多的上下文。 任何应用程序开发人员都知道,有时需要使应用程序的运行时行为可配置。通常这涉及从应用程序部署的属性文件读取应用程序的配置数据,或从数据存储区(如关系数据库)读取数据。 微服务通 阅读全文
posted @ 2019-12-02 20:42 mongotea 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 从DevOps的角度来看,微服务架构背后的一个关键概念是可以快速部署微服务的多个实例,以应对变化的应用程序环境(如用户请求的突然涌入、基础设施内部的问题等)。 为了实现这一点,微服务需要作为带有所有依赖项的单个制品进行打包和安装,然后可以将这个制品部署到安装了Java JDK的任何服务器上。这些依赖 阅读全文
posted @ 2019-12-02 20:41 mongotea 阅读(1460) 评论(0) 推荐(0) 编辑
摘要: 对于DevOps工程师来说,微服务的设计关乎在投入生产后如何管理服务。编写代码通常是很简单的,而保持代码运行却是困难的。 虽然DevOps是一个丰富而新兴的IT领域,在本书后面,读者将基于4条原则开始微服务开发工作并根据这些原则去构建。这些原则具体如下。 (1)微服务应该是独立的和可独立部署的,多个 阅读全文
posted @ 2019-12-02 20:40 mongotea 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 现在已经有了构建脚本,并实现了一个简单的Spring Boot引导类,接下来就可以开始编写第一个代码来做一些事情。这个代码就是控制器类。在Spring Boot应用程序中,控制器类公开了服务端点,并将数据从传入的HTTP请求映射到将处理该请求的Java方法。 遵循REST 本书中的所有微服务都遵循R 阅读全文
posted @ 2019-12-02 20:39 mongotea 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 我们的目标是在Spring Boot中运行一个简单的微服务,然后重复这个步骤以提供功能。为此,我们需要在许可证服务微服务中创建以下两个类。 一个Spring引导类,可被Spring Boot用于启动和初始化应用程序。 一个Spring控制器类,用来公开可以被微服务调用的HTTP端点。 如刚才所见,S 阅读全文
posted @ 2019-12-02 20:38 mongotea 阅读(235) 评论(0) 推荐(0) 编辑