Spring Cloud

Spring Boot(二十):使用 spring-boot-admin 对 Spring Boot 服务进行监控

这一生的挚爱 提交于 2020-04-27 20:47:04
上一篇文章 《Spring Boot(十九):使用 Spring Boot Actuator 监控应用》 介绍了 Spring Boot Actuator 的使用,Spring Boot Actuator 提供了对单个 Spring Boot 的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了 Spring Boot 应用的整个生命周期。 但是这样监控也有一些问题:第一,所有的监控都需要调用固定的接口来查看,如果全面查看应用状态需要调用很多接口,并且接口返回的 Json 信息不方便运营人员理解;第二,如果 Spring Boot 应用集群非常大,每个应用都需要调用不同的接口来查看监控信息,操作非常繁琐低效。在这样的背景下,就诞生了另外一个开源软件: Spring Boot Admin 。 什么是 Spring Boot Admin? Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源软件。每个应用都认为是一个客户端,通过 HTTP 或者使用 Eureka 注册到 admin server 中进行展示,Spring Boot Admin UI 部分使用 VueJs 将数据展示在前端。 这篇文章给大家介绍如何使用 Spring Boot Admin 对 Spring Boot 应用进行监控。 监控单体应用 这节给大家展示如何使用

让面试官颤抖的 HTTP 2.0 协议面试题

Deadly 提交于 2020-04-27 16:25:56
作者:今日头条 https://www.toutiao.com/a6491669443721036302/ Http协议,对于拥有丰富开发经验的程序员来说简直是信手拈来,家常便饭。虽然天天见,但是对于http协议的问题,可能很多人在没有积极准备的情况下,不一定能很好的回答出来。 今天,我们就来讲讲http 2.0和之前版本的区别。 一、HTTP定义 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。 二、HTTP发展史 三、HTTP 2.0 vs 1.0 性能能 HTTP 2.0 的出现,相比于 HTTP 1.x ,大幅度的提升了 web 性能。 这是 Akamai 公司建立的一个官方的演示,用以说明 HTTP/2 相比于之前的 HTTP/1.1 在性能上的大幅度提升。 同时请求 379 张图片,从Load time 的对比可以看出 HTTP/2 在速度上的优势。 四、HTTP 2.0 和 1.1 区别别 后面我们将通过几个方面来说说HTTP 2.0 和 HTTP1.1 区别,并且和你解释下其中的原理。 区别一:多路复用 多路复用允许单一的 HTTP/2 连接同时发起多重的请求-响应消息。看个例子: 整个访问流程第一次请求index.html页面,之后浏览器会去请求style

Java集合从菜鸟到大牛演变

半城伤御伤魂 提交于 2020-04-27 11:22:33
先来看一张集合概况图,这里从上到下列举了几个最经常用的集合 1、集合接口 java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。声明了适用于JAVA集合(只包括Set和List)的通用方法。Set 和List 都继承了Conllection,Map没有. 2、集合类型 JAVA集合主要分为三种类型: Set (集), List (列表), Map (映射) Set集合:集合元素是 不能重复 的,元素是 没有顺序 的,所以它不能基于位置访问元素。 List集合: 集合元素是 可以重复 的,元素是 有顺序 的,所以它可以基于位置访问元素。 Map:它包含键值对。Map的键是 不能重复 的,可以保证元素的插入顺序,也可以排序。 3、集合介绍 Set (集): HashSet HashSet是基于HashMap实现的,它不允许出现重复元素,不保证和政集合中元素的顺序,允许包含值为null的元素,但最多只能有一个null元素。 TreeSet TreeSet可以实现排序等功能的集合,它在讲对象元素添加到集合中时会自动按照某种比较规则将其插入到有序的对象序列中,并保证该集合元素按照“升序”排列。

Spring Security 是如何在 Servlet 应用中执行的?

纵饮孤独 提交于 2020-04-27 11:19:17
Spring Security 是一个强大的认证和授权框架,它的使用方式也非常简单,但是要想真正理解它就需要花一时间来学习了,最近在学习 Spring Security 时有一些新的理解,特意记录下来防止知识忘记的太快,毕竟好记性不如烂笔关,也给即将准备学习 Spring Security 的同志做一个参考。 由于我在学习和使用是基于 Servlet Applications 的,所以文中的大部分都与 Servlet 相关,当然 Spring Security 还支持 Reactive Applications 功能上都是一样,在架构上会有一些差别,有兴趣的同学可以自行查看官方文档。 Spring Securty 在 Servlet Applications 中的应用 以下部分内容摘自官方文档 Servlet Filter Chain 提到 Servlet Filter Chain 应该都熟悉的吧,它们是一系列由 javax.servlet.Filter 实现类组成的一个链,大致图如下所示: 上图中Client发送Http请求,然后请求经过 FilterChain ,每个匹配的 Filter 都有机会处理request和response对象,最终请求会到达servlet(如何filter中没有特殊处理的情况下)。 Spring Security 的实现简单来说,就是往

转 微服务的4个设计原则和19个解决方案

南楼画角 提交于 2020-04-27 02:31:32
原文章地址: https://blog.csdn.net/tiandiwuya/article/details/78543336 微服务架构现在是谈到企业应用架构时必聊的话题,微服务之所以火热也是因为相对之前的应用开发方式有很多优点,如更灵活、更能适应现在需求快速变更的大环境。 本文将介绍微服务架构的演进、优缺点和微服务应用的设计原则,然后着重介绍作为一个“微服务应用平台”需要提供哪些能力、解决哪些问题才能更好的支撑企业应用架构。 微服务平台也是我目前正在参与的,还在研发过程中的平台产品,平台是以SpringCloud为基础,结合了普元多年来对企业应用的理解和产品的设计经验,逐步孵化的一个微服务应用平台。 目录: 一、微服务架构演进过程 二、微服务架构的好处 三、微服务应用4个设计原则 四、微服务架构带来的问题 五、微服务平台的19个落地实践 六、总结展望 一、微服务架构演进过程 近年来我们大家都体会到了互联网、移动互联带来的好处,作为IT从业者,在生活中时刻感受互联网好处的同时,在工作中可能感受的却是来自自互联网的一些压力,那就是我们传统企业的IT建设也是迫切需要转型,需要面向外部客户,我们也需要应对外部环境的快速变化、需要快速创新,那么我们的IT架构也需要向互联网企业学习作出相应的改进,来支撑企业的数字化转型。 我们再看一下应用架构的演进过程

3.Spring Cloud初相识--------Ribbon客户端负载均衡

落花浮王杯 提交于 2020-04-27 02:23:15
前言: 在生产环境中,未避免单点故障,每个微服务都会做高可用部署。 通白的说,就是每一个一模一样的服务会根据需求提供多分在多台机器上。 那么在大并发的情况下,如何分配服务可以快速得到响应,就成为了我们要解决的问题。 Ribbon就是一款优秀的客户端负载均衡机制。 什么是客户端负载均衡呢? 就是由服务的消费方来设定负载均衡策略,选择服务。 就像我们去超市买东西进行结账时,选择人少的柜台排队。 我们是消费方,排哪个队有我们自己决定。 配置测试环境: 1.配置三台服务提供者机器 2.修改端口号分别为:8001,8002,8003 3.修改HelloController返回字符串内容 (1)8001: package com.xm.cloud.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("/hello") public String sayHello() { return "Hello Spring Cloud! 001号机器"; } } (2)8002

一道非常棘手的 Java 面试题:i++ 是线程安全的吗?

安稳与你 提交于 2020-04-26 15:17:13
i++ 是线程安全的吗? 相信很多中高级的 Java 面试者都遇到过这个问题,很多对这个不是很清楚的肯定是一脸蒙逼。内心肯定还在质疑,i++ 居然还有线程安全问题?只能说自己了解的不够多,自己的水平有限。 先来看下面的示例来验证下 i++ 到底是不是线程安全的。 1000个线程,每个线程对共享变量 count 进行 1000 次 ++ 操作。 上面的例子我们期望的结果应该是 1000000,但运行 N 遍,你会发现总是不为 1000000,至少你现在知道了 i++ 操作它不是线程安全的了。 先来看 JMM 模型中对共享变量的读写原理吧。 每个线程都有自己的工作内存,每个线程需要对共享变量操作时必须先把共享变量从主内存 load 到自己的工作内存,等完成对共享变量的操作时再 save 到主内存。 问题就出在这了,如果一个线程运算完后还没刷到主内存,此时这个共享变量的值被另外一个线程从主内存读取到了,这个时候读取的数据就是脏数据了,它会覆盖其他线程计算完的值。。。 这也是经典的内存不可见问题,那么把 count 加上 volatile 让内存可见是否能解决这个问题呢? 答案是:不能。因为 volatile 只能保证可见性,不能保证原子性。多个线程同时读取这个共享变量的值,就算保证其他线程修改的可见性,也不能保证线程之间读取到同样的值然后相互覆盖对方的值的情况。

springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离

℡╲_俬逩灬. 提交于 2020-04-26 14:01:33
1.代码生成器: [正反双向](单表、主表、明细表、树形表,快速开发利器) freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块 2.多数据源: (支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源 3. 阿里数据库连接池 druid ,安全权限框架 shiro( 菜单权限和按钮权限 ) , 缓存框架 ehcache 4. 代码编辑器, 在线模版编辑,仿开发工具编辑器 5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节 6.websocket 及时站内信并声音提醒、实时在线管理、websocket及时刷新页面(完胜ajax技术) 7.redis存储分布式缓存 自windows redis 绿色版,方便开发者本地开发测试 ----------------------------------------------------------------------------------------------------------------- 服务介绍 ( 各个服务单独运行,高可用、低耦合 ) 一:springcloud服务 ---------------------------------------------------------------------------------

微服务当中的4大设计原则及19个解决方案,你知道吗?

不想你离开。 提交于 2020-04-26 13:12:39
微服务架构现在是谈到企业应用架构时必聊的话题,微服务之所以火热也是因为相对之前的应用开发方式有很多优点,如更灵活、更能适应现在需求快速变更的大环境。 本文将介绍微服务架构的演进、优缺点和微服务应用的设计原则,然后着重介绍作为一个“微服务应用平台”需要提供哪些能力、解决哪些问题才能更好的支撑企业应用架构。 微服务平台也是我目前正在参与的,还在研发过程中的平台产品,平台是以SpringCloud为基础,结合了普元多年来对企业应用的理解和产品的设计经验,逐步孵化的一个微服务应用平台。 目录: 一、微服务架构演进过程 二、微服务架构的好处 三、微服务应用4个设计原则 四、微服务架构带来的问题 五、微服务平台的19个落地实践 六、总结展望 一、微服务架构演进过程 近年来我们大家都体会到了互联网、移动互联带来的好处,作为IT从业者,在生活中时刻感受互联网好处的同时,在工作中可能感受的却是来自自互联网的一些压力,那就是我们传统企业的IT建设也是迫切需要转型,需要面向外部客户,我们也需要应对外部环境的快速变化、需要快速创新,那么我们的IT架构也需要向互联网企业学习作出相应的改进,来支撑企业的数字化转型。 我们再看一下应用架构的演进过程,回忆一下微服务架构是如何一步一步进化产生的,最早是应用是单块架构,后来为了具备一定的扩展和可靠性,就有了垂直架构,也就是加了个负载均衡,接下来是前几年比较火的SOA

spring gateway 学习

我的梦境 提交于 2020-04-26 09:47:31
为什么需要使用网关 1.实现统一认证 2.统一一个域名,解决调用困难。 3.协议转换 将不友好的协议转成友好的协议。 spring cloud gateway 是什么 是spring cloud 的第二代网关,会替代zuul 第一代网关。 基于 netty,reactor,webflux 构建。 优点: 1.性能强劲 是 zuul 的1.6倍 2.功能强大 内置 监控,限流,转发等 3.设计优雅,容易扩展。 编写spring cloud gateway 增加依赖 < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-gateway </ artifactId > </ dependency > < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-alibaba-nacos-discovery </ artifactId > </ dependency > < dependency > < groupId > org.springframework.boot </ groupId > <