Spring Cloud

分布式06-Spring Cloud Sleuth & zipkin 链路追踪

て烟熏妆下的殇ゞ 提交于 2020-04-15 22:15:16
【推荐阅读】微服务还能火多久?>>> 一.Zipkin 是什么?  Zipkin的官方介绍: https://zipkin.apache.org/  Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据。分布式跟踪系统还有其他比较成熟的实现,例如:Naver的Pinpoint、Apache的HTrace、阿里的鹰眼Tracing、京东的Hydra、新浪的Watchman,美团点评的CAT,skywalking等。 二.为什么用 Zipkin? 随着互联网发展越来越壮大,系统也越来越复杂。分布式系统中系统之间的互相调用也越来越错综复杂,这时我们排查一个服务来龙去脉也越加困难,甚至我们都很难定位到哪个服务拖慢了整体的响应速度。 Zipkin分布式跟踪系统就能很好的解决这样的问题。 1.zipkin帮我们定位系统用了哪些服务 2.服务之间是怎么互相依赖的 3.请求的执行路径 4.服务之间调用的耗时 三.链路追踪的原理 每个请求会生成一个TraceId(可以理解一条链路的ID)串联每次SpanId形成一条完整的链路。 1.Span :基本的工作单位‘ 2.Trace :一组Span组成的树形结构(链路) 3

spring-clound之eureka集群搭建

你离开我真会死。 提交于 2020-04-15 17:56:36
【推荐阅读】微服务还能火多久?>>> 版本要求:springboot 1.5.4 spring clound D版 1.pom文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> <

spring-clound的简单实例

让人想犯罪 __ 提交于 2020-04-15 17:48:09
【推荐阅读】微服务还能火多久?>>> 1 第一步 1)创建eureka服务中心 //相当于dubbo使用zookeeper的原理 pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> application.properties eureka.client.service-url.defaultZone= http://localhost:8761/eureka/ server.port=8001 eureka.instance.hostname=eureka-server eureka.client.register-with-eureka=false eureka.client.fetch-registry=false 3)在主应用中启用eureka @EnableEurekaServer 测试结果 2 创建服务提供者的应用 1)pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix

SpringCloud上传大文件的三种解决方案

孤街醉人 提交于 2020-04-15 16:40:14
【推荐阅读】微服务还能火多久?>>> 1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出、还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工、挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通过浏览器上传至服务器,做一层中转便可以实现,但当这份文件非常大到了10GB级别,我们就需要思考另一种形式的技术方案了,也就是本文要阐述的方案。 技术要求主要有以下几方面: 支持超大数据量、10G级别以上 稳定性:除网络异常情况100%成功 准确性:数据无丢失,读写准确性100% 效率:1G文件分钟级、10G文件小时级 体验:实时进度感知、网络异常断点续传、定制字符特殊处理 2 文件上传选型 文件上传至ODPS基本思路是先文件上传至某中转区域存储,然后同步至ODPS,根据存储介质可以分为两类,一类是应用服务器磁盘,另一类类是中间介质,OSS作为阿里云推荐的海量、安全低成本云存储服务,并且有丰富的API支持,成为中间介质的首选。而文件上传至OSS又分为web直传和sdk上传两种方案,因此上传方案有如下三种,详细优缺点对比如下: 蚂蚁的文本上传功能演进过程中对第一种、第二种方案均有实践,缺点比较明显,如上表所述,不满足业务需求,因此大文件上传终极方案是方案三。 3 整体方案 以下是方案三的整体过程示意图。 请求步骤如下:

springcloud学习二:服务的注册与发现

丶灬走出姿态 提交于 2020-04-13 19:34:22
【今日推荐】:为什么一到面试就懵逼!>>> spring cloud 就是为快速开发分布式系统的,他提供了一些工具有配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等 springcloud开发是依赖springboot的 全文基于IDEA工具开发 正文开始 一。创建服务注册中心 依赖组件Eureka 项目名eureka_server 创建好项目后,在项目启动类上加上注解@EnableEurekaServer,做一些相应配置就可以了 然后浏览器 http://127.0.0.1:9000/ 就可以看到注册中心界面了 二。创建服务提供者 项目名eureka_client 通过注解@EnableEurekaClient表明自己是个client 启动 访问 http://localhost:9001/hi?name=zhang 参考资料 http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html 来源: oschina 链接: https://my.oschina.net/u/1770546/blog/1850753

SpringCloud教程 | 第十一篇: docker部署spring cloud项目

独自空忆成欢 提交于 2020-04-13 18:31:17
【今日推荐】:为什么一到面试就懵逼!>>> 版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 http://blog.csdn.net/forezp/article/details/70198649 目录 (?) [+] 转载请标明出处: http://blog.csdn.net/forezp/article/details/70198649 本文出自 方志朋的博客 一、docker简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 Docker通常用于如下场景: web应用的自动化打包和发布; 自动化测试和持续集成、发布; 在服务型环境中部署和调整数据库或其他的后台应用; 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。 Docker 的优点 1、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式

SpringCloud教程 | 第十一篇: docker部署spring cloud项目

那年仲夏 提交于 2020-04-13 18:25:38
【今日推荐】:为什么一到面试就懵逼!>>> 版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 http://blog.csdn.net/forezp/article/details/70198649 目录 (?) [+] 转载请标明出处: http://blog.csdn.net/forezp/article/details/70198649 本文出自 方志朋的博客 一、docker简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 Docker通常用于如下场景: web应用的自动化打包和发布; 自动化测试和持续集成、发布; 在服务型环境中部署和调整数据库或其他的后台应用; 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。 Docker 的优点 1、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式

Spring Cloud Sleuth 分布式服务追踪

一个人想着一个人 提交于 2020-04-13 18:20:38
【今日推荐】:为什么一到面试就懵逼!>>> 随着业务的发展, 系统规模也会变 得越来越大, 各微服务间的调用关系也变得越来越错综复杂。 通常 一 个由客户端发起的请 求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果, 在复杂的微服 务架构系统中, 几乎每 一 个前端请求都会形成 一 条复杂的分布式服务调用链路, 在每条链 路中任何 一 个依赖服务出现延迟过高或错误的时候都有可能引起请求最后的失败。这时候, 对于每个请求, 全链路调用的跟踪就变得越来越重要, 通过实现对请求调用的跟踪可以帮 助我们快速发现错误根源以及监控分析每条请求链路上的性能瓶颈等。 针对上面所述的分布式服务跟踪问题, Spring Cloud Sleuth 提供了 一 套完整的解决方 案。 只需在服务 的 pom.xrnl 依赖管理中增加 spring-cloud-s t arter-sleuth 依赖 <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-sleuth</artifactid> </dependency> 假设我们现在有trace-1、trace-2和 eureka-server三个微服务应用,并且 trace-1、trace-2都关联 eureka

【SpringBoot】SpringBoot 之 自定义Ribbon均衡策略(七)

喜夏-厌秋 提交于 2020-04-13 14:58:00
【今日推荐】:为什么一到面试就懵逼!>>>   本章介绍Ribbon自定义规则 Ribbon自带随机均衡策略   1、搭建项目,参考: 【SpringCloud】SpringCloud 服务提供者集群与服务发现Discovery(三)   2、新增配置类,配置类中注入IRule的实现类     在调用者项目(test-springcloud-order8000)中,新增一个配置类com.test.myrule.MySelfRule 1 package com.test.myrule; 2 3 import com.netflix.loadbalancer.IRule; 4 import com.netflix.loadbalancer.RandomRule; 5 import org.springframework.context.annotation.Bean; 6 import org.springframework.context.annotation.Configuration; 7 8 @Configuration 9 public class MySelfRule { 10 11 @Bean 12 public IRule myRule(){ 13 // 定义随机规则 14 return new RandomRule(); 15 } 16 }     注意