Spring Boot

微服务调用链追踪中心搭建

一笑奈何 提交于 2021-02-04 19:32:35
概述 一个完整的微服务系统包含多个微服务单元,各个微服务子系统存在互相调用的情况,形成一个 调用链 。一个客户端请求从发出到被响应 经历了哪些组件 、 哪些微服务 、 请求总时长 、 每个组件所花时长 等信息我们有必要了解和收集,以帮助我们定位性能瓶颈、进行性能调优,因此监控整个微服务架构的调用链十分有必要,本文将阐述如何使用 Zipkin 搭建微服务调用链追踪中心。 注: 本文首发于 My 公众号 CodeSheep ,可 长按 或 扫描 下面的 小心心 来订阅 ↓ ↓ ↓ Zipkin初摸 正如 Ziplin官网 所描述,Zipkin是一款分布式的追踪系统,其可以帮助我们收集微服务架构中用于解决延时问题的时序数据,更直白地讲就是可以帮我们追踪调用的轨迹。 Zipkin的设计架构如下图所示: 要理解这张图,需要了解一下Zipkin的几个核心概念: Reporter 在某个应用中安插的用于发送数据给Zipkin的组件称为Report,目的就是用于追踪数据收集 Span 微服务中调用一个组件时,从发出请求开始到被响应的过程会持续一段时间,将这段跨度称为Span Trace 从Client发出请求到完成请求处理,中间会经历一个调用链,将这一个整个过程称为一个追踪(Trace)。一个Trace可能包含多个Span,反之每个Span都有一个上级的Trace。 Transport

分布式Spring Cloud电子商务平台如何设计?

≡放荡痞女 提交于 2021-02-04 17:26:54
涉及平台:平台管理(包含自营店面)、商家端(PC端、手机端)、买家平台(PC端、H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 核心架构:Spring Cloud、Spring Boot、Mybatis、Redis、SFTP 前端框架:VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序 核心思想:分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端分离、支持阿里Docker 开发模式:前后端分离、微服务开发 社交模式:VR全景虚拟现实、直播带货、短视频带货、分销分润、代跑腿配送等 JDK/数据库:JDK 1.8+/MYSQL 5.6+ 来源 来源: oschina 链接: https://my.oschina.net/u/3613013/blog/4945283

Spring Boot Admin 集成诊断利器 Arthas 实践

独自空忆成欢 提交于 2021-02-04 14:18:29
作者 | 阿提说说 来源| 阿里巴巴云原生公众号 前言 Arthas 是 Alibaba 开源的 Java 诊断工具,具有实时查看系统的运行状况;查看函数调用参数、返回值和异常;在线热更新代码;秒解决类冲突问题;定位类加载路径;生成热点;通过网页诊断线上应用。如今在各大厂都有广泛应用,也延伸出很多产品。 这里将介绍如何将 Arthas 集成进 Spring Boot 监控平台中。 SpringBoot Admin 为了方便,SpringBoot Admin 简称为 SBA(版本:1.5.x)。 1.5 版本的 SBA 如果要开发插件比较麻烦,需要下载 SBA 的源码包,再按照 Spring-boot-admin-server-ui-hystrix的形式 Copy 一份,由于 JS 使用的是 Angular,本人尝试了很久,虽然掌握了如何开发插件,奈何不会 Angular,遂放弃💀 版本:2.x 2.x 版本的 SBA 插件开发,官网有介绍如何开发,JS 使用 Vue,方便很多,由于我们项目还在使用 1.5,所以并没有使用该版本,请读者自行尝试。 不能使用 SBA 的插件进行集成,那还有什么办法呢?😅 SBA 集成 鄙人的办法是将 Arthas 的相关文件直接 Copy 到 Admin 服务中,这些文件都来自 Arthas-all 项目 Tunnel-server。 admin

基于STM32的端到端物联网全栈开发一

走远了吗. 提交于 2021-02-04 12:16:38
应用逻辑 MQTT TLS TCP/IP 公有云应用服务器会提供一个 API,1、把数据转到客户自己的应用服务器上。 嵌入式 网站 数据库 阿里云平台汇聚节点端的数据再转发给应用服务器,为了方便各种设备接入,提供不同网络的设备接入方案。例如 2G 3G 4G NB-IoT LoRa 等,来解决异构网络接入管理的痛点。平台还提供多种协议的设备端SDK,目前支持设备以CoAP HTTP MQTT 协议接入。本些列课程会讲解两种方式的MQTT接入阿里云平台。 一个适用于存储和计算资源受限的设备(不带TLS),资源受限的设备使用原生的MQTT客户端接入 ,这里采用的是 Pahoo mqtt 客户端协议栈,由于节点设备存储资源有限,该连接方式不带TLS,数据格式来说,为了传输效率尽量简洁高效,节点和用户服务器端事先约好了数据负载的格式。由IOT平台管理和转发的主题也是事先约好的。 另一种适用于资源相对丰富的节点设备,如果节点端的应用逻辑复杂度到了一定程度,通常会使用RTOS,并基于 Linkkit SDK 这个由阿里云提供给设备厂商的SDK连接到阿里云iot平台,linkkit的信息以及如何使用会在之后介绍。另外,在丰富的设备中安全连接是一个重要的考量。因此在这个场景会支持TLS,还有是在阿里云IOT平台上,我们采用设备管理的高级版(物管理中的物模型),一旦物模型固定了,双方要处理的消息主题

【Java】【SpringBoot】基于BASE64的图片上传、存储

依然范特西╮ 提交于 2021-02-04 04:23:08
前台 上传控件: <input type="file" class="custom-file-input" id=" homeImg " name='homeImg'/> JS提交: // 保存图片信息 $scope.save = function () { var fd = new FormData(); var file = document.getElementById(' homeImg ').files[0 ]; fd.append( ' homeImg ' , file); $http.post(CommonConfig.RestBaseUrl.CaoBaoService + 'homeimgs/upload?id=' + $scope.detailInfo.id + '&sortNum=' + $scope.detailInfo.sortNum, fd, CommonConfig.fileUploadReqConfig) .then( function (result) { // 正确请求成功时处理 console.log('save:result' , result); if (result.data.code == 'NONE_ERROR' ) { $scope.modalContent = '保存成功!' ; $( '#myModal').modal('show

@ControllerAdvice全局异常拦截

谁都会走 提交于 2021-02-03 07:07:34
@ControllerAdvice 拦截异常并统一处理 在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考: @ControllerAdvice 文档 一、介绍 创建 MyControllerAdvice,并添加 @ControllerAdvice注解。 package com.sam.demo.controller; import org.springframework.ui.Model; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; /** * controller 增强器 * @author sam * @since 2017/7/17 */ @ControllerAdvice public class MyControllerAdvice { /** * 应用到所有 @RequestMapping 注解方法,在其执行之前初始化数据绑定器 *

深入理解 WebSecurityConfigurerAdapter【源码篇】

六月ゝ 毕业季﹏ 提交于 2021-02-03 06:39:33
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 我们继续来撸 Spring Security 源码,今天来撸一个非常重要的 WebSecurityConfigurerAdapter。 我们的自定义都是继承自 WebSecurityConfigurerAdapter 来实现的,但是对于 WebSecurityConfigurerAdapter 内部的工作原理,配置原理,很多小伙伴可能都还不太熟悉,因此我们今天就来捋一捋。 我们先来看一张 WebSecurityConfigurerAdapter 的继承关系图: 在这层继承关系中,有两个非常重要的类: SecurityBuilder SecurityConfigurer 这两个类松哥在之前的文章中都和大家分享过了,具体参考: 深入理解 HttpSecurity【源码篇】 (本文讲的是 SecurityBuilder 体系) 深入理解 SecurityConfigurer 【源码篇】 所以关于这两个类的介绍以及作用,松哥这里就不赘述了。咱们直接从 WebSecurityConfigurer 开始看起。 1.WebSecurityConfigurer WebSecurityConfigurer 其实是一个空接口,但是它里边约束了一些泛型,如下: public

Unable to find a single main class from the following candidates

只谈情不闲聊 提交于 2021-02-03 06:38:57
1、Unable to find a single main class from the following candidates 1.1、问题描述 maven build时出现以下错误提示日志: [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin: 1.3 .5.RELEASE:repackage ( default) on project information: Execution default of goal org.springframework.boot:spring-boot-maven-plugin: 1.3 .5.RELEASE:repackage failed: Unable to find a single main class from the following candidates [ com. hhly. InformationApplication, com. hhly. test. Application] -> [ Help 1] 1.2、日志分析 Unable to find a single main class from the following candidates [ com. hhly.

一应俱全,阿里新产P5到P8Java全栈成长宝典限时开源(2021最新)

本秂侑毒 提交于 2021-02-02 21:12:40
前言 对于大部分的程序员来说,清晰地规划自己的职业发展并不是一件容易的事情。作为一个曾经底子比较差,从底层摸爬滚打多年走过来的程序员,在这里分享一下对我帮助很大的一份宝典,希望同行们能快速掌握这些技术,直接弯道超车。 很多程序员不知道学什么?或者说不知道从何学习?今天分享的这份宝典由阿里大佬倾情力荐,Java全线成长宝典,从P5到P8一应俱全。 需要电子版来帮助自己从P5进阶到P8的朋友,点赞收藏,关注我之后直接添加小助理vx:bjmsb2020 即可百分百获取! P5:能够独立执行既定任务 1.打开程序员的大门 计算机基础+CPU/内存/硬盘+软、硬件关联+2进制、位运算 Windows基础+环境变量+PATH/CLASSPATH+常用命令 Linux基础+进程/文件命令+网络/安全命令/常用命令 虚拟机的安装与使用+VMWARE+Linux安装 2.JavaSE核心 面向对象和基本语法+封装+继承+多态+标识符合保留字+数据类型+流程控制 集合框架+COLLECTION+LIST+SET+MAP+COLLECTIONS+ARRAYS 多线程+线程进程+Tread、Runnable+线程的生命周期+线程池 IO框架+字节流+字符流+缓冲流+处理流+标准流+转换流 设计模式+工厂模式+单例模式+适配器模式+装饰器模式+代理模式+策略模式+模板方法模式+访问者模式 设计原则