Spring Cloud

SpringCloud Sleuth+Zipkin

丶灬走出姿态 提交于 2020-05-02 09:45:19
Sleuth+Zipkin用来实现分布式系统的链路追踪。 Sleuth组件用于日志埋点、记录链路数据,Zipkin组件用于展示链路数据。 Sleuth的使用 (1)创建消费者、提供者时勾选Spring Cloud Tracing -> Sleuth 也可以手动添加依赖: < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-sleuth </ artifactId > </ dependency > (2)在消费者、提供者处理业务的类中添加成员变量 //使用的是 slf4j的日志,不要导错了 private final Logger logger = LoggerFactory.getLogger( this .getClass()); 在处理业务的方法中(消费者调用提供者、提供者处理业务的方法中),输出日志 logger.info("正在执行user-service的findOrdersByUserId方法,调用服务order-service"); 内容根据需要修改。 Sleuth输出的日志往往是空的,只输出服务名:[order-service,,,] 第(2)步是为了解决此问题,使Sleuth输出的日志有内容。 [order

alibaba的springcloud孵化器项目

独自空忆成欢 提交于 2020-05-02 07:12:14
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。 主要功能 服务限流降级:默认支持 Servlet、Feign、RestTemplate、Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。 服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。 分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。 消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。 分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。。 阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。 分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于

Dubbo/ Spring Cloud 分布式事务管理 LCN方式

梦想与她 提交于 2020-05-02 04:54:01
Spring Cloud 分布式事务管理 在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率. Spring Cloud 分布式事务管理 单体式架构 微服务架构 优点: 缺点: 分布式事务的引入 分布式事务解决方案 基于XA协议的两阶段提交 消息事务+最终一致性 TCC编程模式 具体实现 LCN ByteTCC 在说微服务的优缺点时,有对比才会更加明显,首先说一下单体式结构 单体式架构 在单体式架构中,系统通常采用分层架构模式(MVC),持久化层、表示层,业务逻辑层。架构主要存在以下问题: 系统内部互相访问,耦合紧密导致难以维护; 各业务领域需要采用相同的技术栈,难以快速应用新技术(例如使用SSH很难向SSM改造); 对系统的任何修改都必须整个系统一起重新部署/升级; 在系统负载增加时,难以进行水平扩展; 当系统中一处出现问题,会影响整个系统; 为了克服以上缺点,微服务架构应运而生。微服务,又叫微服务架构。微服务就是一些协同工作的小而自治的服务. 微服务架构 优点: 1. 技术异构性 在不同的服务中,可以使用不同的技术来各自开发,只要保证服务间能相互协作即可 2. 弹性 当微服务中的某一个服务不可用时,不会影响整个系统,只会影响相关功能不可用 3. 扩展 易于扩展,使用小的多个服务

springcloud-注册中心快速构建

拥有回忆 提交于 2020-05-02 00:23:10
1. 场景描述 springcloud提供了一整套可行的构建分布式系统的方案,使的企业/开发人员能够快速沟通分布式系统,今天快速构建下springcloud的注册中心Eureka。 2. 解决方案 2.1 springcloud介绍 COORDINATE ANYTHING: DISTRIBUTED SYSTEMS SIMPLIFIED Building distributed systems doesn't need to be complex and error-prone. Spring Cloud offers a simple and accessible programming model to the most common distributed system patterns, helping developers build resilient, reliable, and coordinated applications. Spring Cloud is built on top of Spring Boot, making it easy for developers to get started and become productive quickly. 2.2 项目构建 使用的idea终极版,springcloud项目本身就是springboot项目(

springcloud线上发布超时方案之终极杀招:预热(测试用例)

谁说我不能喝 提交于 2020-05-01 22:27:32
springcloud线上发布超时系列文章: springcloud线上发布超时之feign(ribbon饥饿加载) springcloud线上发布超时之grpc springcloud线上发布超时方案之终极杀招:预热(测试用例) 前言 经过上面两章的优化,超时报错有所减少,但是只是得到了缓解但是当流量切换时还是会有大量超时。 方案 这里又增加了一个启动后预热,即在程序启动后执行测试用例n次,让hystrix、web容器线程池等资源初始化。在测试用例执行完成之前,为了保证服务不对外提供服务,这里可以分两种。 延迟注册到注册中心 如果时使用注册中心来进行服务发现等,这里可以采用延迟注册来保证测试用例的成功执行, 如果时eureka为注册中心可以配置initial-instance-info-replication-interval-seconds参数,默认是40s,可以将其改为1分钟 如果是consul或者zk,可以修改响应的延时注册时间,或者修改服务端有效时间 kubernetes中增加服务ready延时时间 这里再deploy.yml中配置如下: spec: replicas: 1 template: spec: containers: - args: livenessProbe: failureThreshold: 5 httpGet: path: /health port:

阿里,华为,腾讯,小米2019秋招实习面试经历(Java岗位)

被刻印的时光 ゝ 提交于 2020-05-01 16:24:27
首先自我介绍,非985,非211学校,主要从事Java后台开发,大一至现在做过两个项目(都不深),有一段去小公司的实习经历,今年刚到学校开始准备实习,陆续投了小米(我是米粉),阿里,华为,腾讯,京东,网易,今日头条等一系列互联网公司,小米,腾讯,今日头条挂一面,网易笔试过了和华为冲突了,去华为面试了,只拿到了阿里的java后台offer,华为应该算是口头offer吧(不过据说城里套路深,有可能是面试官诈你),然后其他几家公司就不打算去面试了。 小米面试 小米是最早的,向来重视算法出名。 准时电话打过来,首先自我介绍,然后倒着输出链表元素(压入占输出),然后问如果要修改链表元素呢(也就是3个指针翻转链表了),然后让手写链表倒数第k个数(两个指针跑,一个先跑k步,后面一个再跑),写好后发邮件给他,老实说以前面试都是说一说算法就行,第一次这样写代码发过去,有点紧张,哆哆嗦嗦打开eclipse写完了发过去。 第二题:给定一个字符串如果某个字符是? 后面可以表示任意多个字符,如果是.说明可以表示一个字符,现在给定两个序列,问第二个能否符合第一个序列,卡住了,想了个递归发过去了。 第三题:设计红包算法。这个想想不是简单么,每一个红包随机啊,最后一个总数减就是了,后来面试官提醒必须至少保证每一个红包为0.01,然后改成先每一个都放0.01,再随机,估计有更好的方法。 你还有什么想说的:

Java 打怪升级路线图,大佬是这样炼成的!一定要收藏

会有一股神秘感。 提交于 2020-05-01 13:36:06
技术日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的。 网上的资料多如牛毛,但是很多时候我们缺的不是一个资料,而是一个学习规划! 就是说,做 Java 开发,我们应该从哪里开始学?应该学习哪些东西?应该按照什么样的顺序来学? 松哥大二刚开始自学 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,自己一个人摸索了很长时间,后来才逐步建立起自己的知识体系。 所以每次有小伙伴问我 Java 的学习规划时,我都能理解大家所处的困境。 Java 开发涉及到的领域非常多,对于开发者而言要掌握的东西也非常多,初入行的小伙伴甚至觉得这些要掌握的东西非常杂乱,其实不然!所有要学习的东西都是有内在关联的。 松哥今天就来和大家捋一捋 Java 学习路线图,一起来看看都有哪些东西需要掌握,以及要按照什么样的顺序来学习。 1. 整体规划 Java 企业级开发涉及到的技能点实际上非常多,我将其大致归为以下五类(文末可以获取思维导图): 在这个技术栈的基础上,你可以继续选择走全栈道路或者走大数据方向。 有的小伙伴可能会纠结于要全面还是要精通某一方面,其实这个无所谓好坏,关键是要看你自己。你是想去大厂做一个某一领域的技术专家,还是想自己独当一面,自己喜欢的才是最好的。 话说回来,即使你想钻研某一方面,也不是说这些东西就不用学了,即使精通某一方面,也必然是先广泛涉猎

java零基础自学网站分享

旧城冷巷雨未停 提交于 2020-05-01 10:33:46
俗话说工欲善其事,必先利其器,今天给大家分享一个java自学网站: how2j ,这是一个有十年淘宝工作经验大牛的制作的网站,距离现在已经有三四年了,这个网站包含的知识非常的多,从基础的环境变量配置一直到完整项目的开发部署,以及面试教程,还有很多工具可提供直接下载使用,避免了初学者配置个工具就要半天时间,大大的减少了不必要的麻烦,还设计了很多有趣的游戏例子,提高了学习兴趣,在兴趣中快乐的学习,下面就给大家展示一下: https://how2j.cn 一:代码对比: 很多时候因为一个符号,一个字母写错了,导致程序不能正常运行,调试半天很难发现,最后导致学习兴趣大大减少,很难坚持下去,恰巧这个网站提供了代码比较.可以复制你写的代码和站长的比较,系统一下子就给你提示哪里错了,很快就解决了. ​ 二:模块化教学 java基础: helloworld → 面向对象 → 变量 → 操作符 → 控制流程 → 数组 → 类和对象 → 接口和继承 → 数字与字符串 → 日期 java中级: 异常处理 I/O → 集合框架 → 泛型 → Lambda → 多线程 → JDBC → 图形界面 → 网络编程 → 实战项目 java高级: 反射机制 → 注解 java应用: Log4j → junit → hutool → jsoup → lombok 前端: HTML → CSS → javaScript

Nginx简单快速搭建文件服务器

荒凉一梦 提交于 2020-05-01 09:18:16
前言 在之前的一篇博文中介绍了 Nginx负载均衡的实现 ,本篇文章就简单介绍下如何用Nginx搭建一个文件服务器。 Nginx安装 在之前的一篇博文中已经讲述过了,这里就不在讲述了。 地址: Nginx Linux和Windows安装教程 : https://www.cnblogs.com/xuwujing/p/11899890.html Nginx配置 Nginx的配置这块和普通的一样就可以了,只要在nginx/html 目录新增文件即可。然后通过Nginx的IP加上文件的路径即可下载,比如在nginx/html目录创建一个test目录,然后在test目录在创建一个xuwujing.txt和xuwujing.zip的文件,最在浏览器输入 http://localhost:8080/test/xuwujing.zip,即可进行下载。 示例图: 静态文件下载 上述的配置可以简单满足一些要求,但是有时候我们想通过nginx进行下载其他的格式的文件时候,比如下载一张图片,但是访问这个url浏览器会自动展现这张图片,那么这时我们就可以通过增加配置,并且让浏览器下载该图片。 例如,我们在访问test目录的静态文件,那么我们在nginx/conf中添加如下配置即可! location /test { add_header Content-Disposition "attachment;";

Nginx简单快速搭建文件服务器

泄露秘密 提交于 2020-05-01 08:27:44
前言 在之前的一篇博文中介绍了 Nginx负载均衡的实现 ,本篇文章就简单介绍下如何用Nginx搭建一个文件服务器。 Nginx安装 在之前的一篇博文中已经讲述过了,这里就不在讲述了。 地址: Nginx Linux和Windows安装教程 : https://www.cnblogs.com/xuwujing/p/11899890.html Nginx配置 Nginx的配置这块和普通的一样就可以了,只要在nginx/html 目录新增文件即可。然后通过Nginx的IP加上文件的路径即可下载,比如在nginx/html目录创建一个test目录,然后在test目录在创建一个xuwujing.txt和xuwujing.zip的文件,最在浏览器输入 http://localhost:8080/test/xuwujing.zip,即可进行下载。 示例图: 静态文件下载 上述的配置可以简单满足一些要求,但是有时候我们想通过nginx进行下载其他的格式的文件时候,比如下载一张图片,但是访问这个url浏览器会自动展现这张图片,那么这时我们就可以通过增加配置,并且让浏览器下载该图片。 例如,我们在访问test目录的静态文件,那么我们在nginx/conf中添加如下配置即可! location /test { add_header Content-Disposition "attachment;";