Spring Cloud

国内Java面试总是问StringBuffer,StringBuilder区别是啥?档次为什么这么低?

﹥>﹥吖頭↗ 提交于 2020-12-08 14:08:13
目录 前言 StringBuffer悠久的历史 字符串 大厂面试题的开头 阿里P5-P7知识结构 最后 前言 在日常开发过程中,我们经常用到字符串,但是到具体应用的时候并不知道(String StringBuffer StringBuilder)在什么情况下会应用到;我们今天就深入浅出的说一下字符串、在什么情况下会用到。 StringBuffer悠久的历史 StringBuilder 问题档次并不低,如果仔细思考的话,这是一个历史悠久,并且至今仍在困扰很多程序员的问题。这是个字符串内存管理策略问题。几十年前 在C和Pascal的时代,就有字符串存储形式 是 \0 结尾还是 长度+内容的争论,这个问题严重影响了API的设计,内存的管理,甚至程序架构。 字符串 字符串是一种非常常用的 生命周期通常很短的对象,而且它的size是不固定的,长度为 1 或 1GB都有可能,导致内存管理非常麻烦复杂。 用长度+内容表示,每个串都要额外付出4个字节,用\0结尾吧,算长度就很麻烦,万一结尾忘了\0就要崩溃,选哪个好? 字符串的长度放哪里,放到起始指针的位置,还是起始指针的前面 如果放前面,那么字符串起始指针和内存块起始不一致怎么解决? 字符串拼接的时候把源串复制到目标串结尾,那么目标串剩余内存不够怎么办,重新分配要多一次赋值,频繁拼接性能有问题怎么办? 函数返回值如果是字符串

基于Redis实现Spring Cloud Gateway的动态管理

做~自己de王妃 提交于 2020-12-06 15:56:41
​ 转载本文需注明出处:微信公众号EAWorld,违者必究。 引言: Spring Cloud Gateway是当前使用非常广泛的一种API网关。它本身能力并不能完全满足企业对网关的期望,人们希望它可以提供更多的服务治理能力。但Spring Cloud Gateway并不提供数据的动态管理,甚至修改个路由都需要重启。我们如何解决它这个短板,同时实现治理配置数据的高效动态管理呢?本文将带来我们网关与Redis组合的实践。 目录: 1.Spring Cloud Gateway 简介 2.网关数据管理 3.实现细节 1.Spring Cloud Gateway 简介 API 网关 API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性。 存在跨域请求,在一定场景下处理相对复杂。 认证复杂,每个服务都需要独立认证。 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。 某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难。 以上这些问题可以借助 API 网关解决。API

Failed to determine a suitable driver class(基于SpringBoot框架)

烂漫一生 提交于 2020-12-06 15:54:06
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.7.RELEASE) 2019-08-27 11:31:57.774 ERROR 15364 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver

SpringCloud之Feign

拟墨画扇 提交于 2020-12-05 19:51:52
  Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易。使用Fegin创建一个接口并对它进行注解。它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign。 声明式REST客户端:Feign   创建一个maven工程eureka_feign_client,pom文件如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version> 1.4 . 3 .RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF- 8 </project.build.sourceEncoding> <java

血的教训!蚂蚁金服、天猫、百度,多家面试被虐,奉劝各位年轻人耗子尾汁!

家住魔仙堡 提交于 2020-12-05 15:13:31
没有不坑的公司,所谓好公司就是不那么坑的公司 。 背景 十月份前后一个月的时间,有幸获得天猫、蚂蚁金服、百度和NAVER China的面试机会,对于普通院校毕业的我,能够收到大厂面试机会已经很兴奋了,然后就幻想着收到offer的场景,或许是兴奋冲昏了头脑,没有好好审视自我,竟然觉得面试通过的把握还是有的,毕竟有2年工作经验嘛。 准备过程 刷面试题,相信这是大多数小伙伴的惯用伎俩吧,每次换下家前刷面试题是必经流程。所谓刷面试题就是把职业相关基础知识在脑海中跑一遍,对于大神级的人物可以忽略这一步,能被众人膜拜肯定是有两把刷子的。我的感受是,刚开始找工作的时候,实际开发经验很少,看基础知识很费力,就像是过年回家爸妈带着我走远房亲戚一一介绍七大姨八大姑很难记住一样,各种关系根本不知道怎么联系到一起。经历过几个实际项目之后,刷面试题就会轻松很多。面试题的出发点是为了验证应聘者对基础知识的掌握程度,以及日常开发过程中遇到的问题,如果没有亲身经历过这些问题便很难理解。所以面试题不是用来背的。 了解岗位相关知识,不同大厂的面试流程是不同的,比如阿里从一面到给offer ,NAVER China和百度不接受电面,只能到公司面试等等。不同公司不同部门注重的点都是千差万别的,唯一不变的就是应聘岗位的基础知识。所以在刷面试题的基础上需要研究你所应聘的岗位,牵扯到哪些知识点和应用方面的问题

cloud-zuul路由网关

北战南征 提交于 2020-12-05 07:00:05
九、zuul路由网关 概述 1.1 能干嘛 路由、过滤 路由基本配置 POM <dependencies> <!-- zuul路由网关 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <!-- actuator监控 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- hystrix容错 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> <

利用SpringBoot+Logback手写一个简单的链路追踪

落花浮王杯 提交于 2020-12-05 06:55:55
最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简单的链路追踪,下面详细介绍下。 [TOC] 一、实现原理 Spring Boot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打印日志。 MDC(Mapped Diagnostic Context,映射调试上下文)是log4j和logback提供的一种方便在多线程条件下记录日志的功能。 实现思路是在一个请求开始时,将请求相关的上下文信息(例如客户ID、客户的IP地址、sessionId、请求参数等)添加到MDC,然后配置好logback-spring.xml,则Logback组件将会在每条日志中打印出存放到MDC的信息,从而实现一个ID贯穿用户的所有操作。 二、代码实战 新建一个spring boot项目spring-boot-log,按照下面步骤操作。 新建日志拦截器 日志拦截器在请求开始获取用户的sessionId,当然也可以生成一个UUID,生成后存放到MDC中。 SessionInterceptor代码如下: /** * 日志拦截器 * @Author: Java碎碎念 * */ public class SessionInterceptor extends

Spring Cloud Alibaba 教程 | Nacos(一)

淺唱寂寞╮ 提交于 2020-12-04 18:34:23
什么是Nacos Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式)的服务基础设施。 使用Nacos组件可以作为微服务架构的注册中心和配置中心,可以简单理解为可以代替Netflix解决方案中的Eureka组件和Spring Cloud Config组件。 Nacos官方地址: https://nacos.io/zh-cn/index.html 主要功能 动态配置服务 动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。 服务发现及管理 动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。 动态DNS服务

内核!阿里技术专家不传的微服务+注册中心+网关+开源配置中心

拈花ヽ惹草 提交于 2020-12-04 15:01:19
随着互联网的发展,微服务的使用是必然的,现在微服务在每个企业中都是必须的。 微服务架构并不是一种新的方法,多年来,它的核心思想一直以SOA(面向服务的体系结构),Web服务以及模块化和分层架构的形式存在。 其实在未来几年中,微服务架构将快发展到更高的水平,单体应用将只被用来进行原型设计。那么,试问谁不想在互联网时代拥有一个模块化、高性能并且易于扩展的应用程序呢? 那么,你对微服务架构了解多少呢? 今天LZ在逛Github上面的刷到了四份微服务架构笔记, 每一份都有将近86.9K的点赞,真的是很不错, 都是层层递进的讲解了一下微服务架构,所以就整理了一下,本着好东西都要分享的原则,给小伙伴们展示一下: 需要以上四份微服务架构笔记的小伙伴可以一键三连后加文末扫码即可免费领取~ 微服务架构笔记学习目录大纲(还是很形象的): Day1 微服务架构基础+服务+注册中心 毫无疑问,无论学习什么,都要先对这个知识点有一个清楚的认知,至少是要知道它是做什么的?什么时候会用到?它的优势和劣势?等等都是需要知道的。所以笔记一,就是从基础开始的: 1 微服务基础知识 2 SpringCloud概述 3 案例措建 4 服务注册Eureka基础 5 服务注册Eureka高级 6 Eureka替换方案Consul 7 服务调用Ribbon入门 8 服务调用Ribbon高级 Day2 微服务架构笔记服务调用

Feign Ribbon Hystrix 三者关系 | 史上最全, 深度解析

≡放荡痞女 提交于 2020-12-04 08:51:28
史上最全: Feign Ribbon Hystrix 三者关系 | 深度解析 <font size=3 face="黑体" > 疯狂创客圈 Java 分布式聊天室【 亿级流量】实战系列之 -25【 博客园 总入口 】</font > 前言 疯狂创客圈 (笔者尼恩创建的高并发研习社群)Springcloud 高并发系列文章,将为大家介绍三个版本的 高并发秒杀: 一、 版本1 :springcloud + zookeeper 秒杀 二、版本2 :springcloud + redis 分布式锁秒杀 三、版本3 :springcloud + Nginx + Lua 高性能版本秒杀 以及有关Springcloud 几篇 核心、重要的文章 : 一、 Springcloud 配置, 史上最全 一文全懂 二、 Springcloud 中 SpringBoot 配置全集 , 收藏版 三、 Feign Ribbon Hystrix 三者关系 , 史上最全 深度解析 四、 SpringCloud gateway 详解 , 史上最全 本文,是《 Feign Ribbon Hystrix 三者关系 , 史上最全 深度解析 》篇 ,为大家解读如果Feign Ribbon Hystrix 三者关系, 大家可以藏好,一定有用的到时候 。 Springcloud 高并发 配置 简介 在微服务架构的应用中,