关闭

Spring Cloud入门教程(七):分布式链路跟踪(Sleuth)

当我们进行微服务架构开发时,通常会根据业务来划分微服务,各业务之间通过REST进行调用。一个用户操作,可能需要很多微服务的协同才能完成,如果在业务调用链路上任何一个微服务出现问题或者网络超时,都会导致功能失败。随着业务越来越多,对于微服务之间的调用链的分析会越来越复杂。Spring Cloud Sleuth为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个...
阅读(75) 评论(0)

Spring Cloud入门教程(六):API服务网关(Zuul) 下

上一篇:《Spring Cloud入门教程(五):API服务网关(Zuul) 上》Zuul给我们的第一印象通常是这样:它包含了对请求的路由和过滤两个功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。然而实际上,路由功能在真正运行时,它的路由映射和请求转发都是由几个不同的过滤器完成的。...
阅读(83) 评论(0)

Spring Cloud入门教程(五):API服务网关(Zuul) 上

上一篇:《Spring Cloud入门教程(四):微服务容错保护(Hystrix)》微服务场景下,每一个微服务对外暴露了一组细粒度的服务。客户端的请求可能会涉及到一串的服务调用,如果将这些微服务都暴露给客户端,那么客户端需要多次请求不同的微服务才能完成一次业务处理,增加客户端的代码复杂度。另外,对于微服务我们可能还需要服务调用进行统一的认证和校验等等。微服务架构虽然可以将我们的开发单元拆分的更细,降...
阅读(129) 评论(0)

Spring Cloud入门教程(四):微服务容错保护(Hystrix)

上一篇:《Spring Cloud入门教程(三):声明式服务调用(Feign)》我们在实践微服务架构时,通常会将业务拆分成一个个微服务,微服务之间通过网络进行通信,进行互相调用,造成了微服务之间存在依赖关系。我们知道由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟甚至调用失败,而调用失败又会造成用户刷新页面并再次尝试调用,再加上其它服务...
阅读(168) 评论(0)

Spring Cloud入门教程(三):声明式服务调用(Feign)

上一篇:《Spring Cloud入门教程(二):客户端负载均衡(Ribbon)》在上一篇中可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,一旦有多个参数的话,这时拼接请求字符串就会效率低下,并且显得好傻。那么有没有更好的解决方案呢?答案是确定的有,Netflix已经为我们提供了一个框架:Feign。Feig...
阅读(335) 评论(0)

Spring Cloud入门教程(番外篇一):RestTemplate使用指南

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 1. 使用GET1.1 获取JSON字符串我们可以使用getForEntity()方法:RestTemplate restTemplate = new RestTemplate(); String fooResourceUrl =...
阅读(180) 评论(0)

Spring Cloud入门教程(二):客户端负载均衡(Ribbon)

上一篇:《Spring Cloud入门教程(一):服务治理(Eureka)》对于大型应用系统负载均衡(LB:Load Balancing)是首要被解决一个问题。在微服务之前LB方案主要是集中式负载均衡方案,在服务消费者和服务提供者之间又一个独立的LB,LB通常是专门的硬件,如F5,或者是基于软件的,如VS、HAproxy等。LB上有所有服务的地址映射表,当服务消费者调用某个目标服务时,它先向LB发起...
阅读(237) 评论(1)

Spring Cloud 入门教程(一):服务治理(Eureka)

Spring Cloud是一系列框架的集合,其基于Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,构建了服务治理(发现注册)、配置中心、消息总线、负载均衡、断路器、数据监控、分布式会话和集群状态管理等功能,为我们提供一整套企业级分布式云应用的完美解决方案。Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Con...
阅读(261) 评论(1)

可自定义分页宽度的UIScrollView(Swift实现)

最近在开发新版的APP时需要一个可自定义分页宽度的图片轮播组件。刚开始自己觉得在这个万能的互联网上早就应该有一个大侠为我们封装好了,我只需要下载、拷贝、粘贴、修改一下代码就可以了。谁知一圈下来,不知道是自己没搜到,还是什么其它原因,根本就找不到。所以,一狠心就自己开干了。我们先看一下需要的效果,如下图:总起来说,所需要功能有如下几项: 可自定义分页的宽度,并且在两边可以显示相邻两项的一部分,从而用户...
阅读(146) 评论(0)

(Swift) iOS Apps with REST APIs(六) -- 使用PINRemoteImage实现图片加载及缓存

本小节将会介绍有关报头的一些处理方式,并尝试进行最原始的图片加载、缓存等功能处理。最后使用PINRemoteImage组件完成图片的加载、显示、缓存等功能。 重要说明: 这是一个系列教程,非本人原创,而是翻译国外的一个教程。本人也在学习Swift,看到这个教程对开发一个实际的APP非常有帮助,所以翻译共享给大家。原教程非常长,我会陆续翻译并发布,欢迎交流与分享。 自定义报头(Header)...
阅读(107) 评论(0)

(Swift) iOS Apps with REST APIs(五) -- 整合REST API和表格视图

本文将继续前面的教程,继续讲解如何通过REST API获取数据列表并解析为Swift对象,然后显示在表格视图中。 重要说明: 这是一个系列教程,非本人原创,而是翻译国外的一个教程。本人也在学习Swift,看到这个教程对开发一个实际的APP非常有帮助,所以翻译共享给大家。原教程非常长,我会陆续翻译并发布,欢迎交流与分享。 为什么使用像Alamofire这样的库关于编程中最难的两件事情有一堆的...
阅读(225) 评论(0)

(Swift) iOS Apps with REST APIs(四) -- 自定义Alamofire的响应序列化

本文将继续前面的教程,讲解如何将REST API获取JSON格式的数据转换为Swift对象。 重要说明: 这是一个系列教程,非本人原创,而是翻译国外的一个教程。本人也在学习Swift,看到这个教程对开发一个实际的APP非常有帮助,所以翻译共享给大家。原教程非常长,我会陆续翻译并发布,欢迎交流与分享。 在Alamofire的GET与POST调用中使用强类型我们使用Alamofire进行RES...
阅读(162) 评论(0)

(Swift) iOS Apps with REST APIs(三) -- 使用Alamofire和SwiftyJSON进行REST API调用

重要说明: 这是一个系列教程,非本人原创,而是翻译国外的一个教程。本人也在学习Swift,看到这个教程对开发一个实际的APP非常有帮助,所以翻译共享给大家。原教程非常长,我会陆续翻译并发布,欢迎交流与分享。 使用Alamofire和SwiftyJSON进行REST API调用上面我们使用了快速、肮脏的方式在iOS中访问REST API。dataTaskWithRequest对于比较简单的情况还是非常...
阅读(284) 评论(0)

(Swift) iOS Apps with REST APIs(二)

使用Swift进行REST API调用...
阅读(66) 评论(0)

(Swift) iOS Apps with REST APIs(一)

重要说明: 这是一个系列教程,非本人原创,而是翻译国外的一个教程。本人也在学习Swift,看到这个教程对开发一个实际的APP非常有帮助,所以翻译共享给大家。原教程非常长,我会陆续翻译并发布,欢迎交流与分享。 另,原教程有第一章,讲述该教程及相关基础概念,感觉没有什么必要翻译,所以这里略过。有兴趣的可以自行上网去找原版教程。 App需求直接去编码对我们这些码农来说总是很有诱惑力的,但是如果我们事...
阅读(162) 评论(0)
    个人资料
    • 访问:2630次
    • 积分:170
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:6篇
    • 评论:2条
    文章分类