11 hellozhxy

尚未进行身份认证

暂无相关描述

等级
TA的排名 5k+

REST API认证的四种常用方法

【51CTO.com快译】众所周知,在不同系统的不同应用场景中,开发人员经常会用到截然不同的专有认证方法。本文将向您介绍在RESTAPI和微服务领域中常用的四个认证方法。身份验证与授权的概念在深入介绍认证方法之前,先让我们从概念上来了解一下身份验证与授权。身份验证是指实体证明自己的身份。换句话说,为了证明自己所声称的身份,请求者持有由受信任的机构所颁发的身份证明,并将作为证据提供出来...

2019-08-16 10:22:59

分布式锁用Redis还是Zookeeper?

为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景。作者:jianfeng来源:石杉的架构笔记|2019-07-1609:22为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景。为什么用分布式锁?系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。...

2019-08-06 20:08:09

Kafka设计原理看了又忘,忘了又看?

什么是消息队列?简单来说,消息队列是存放消息的容器。客户端可以将消息发送到消息服务器,也可以从消息服务器获取消息。作者:lbzhello来源:博客园|2019-07-1809:17什么是消息队列?简单来说,消息队列是存放消息的容器。客户端可以将消息发送到消息服务器,也可以从消息服务器获取消息。今天,我将围绕如下几个问题进行分享:为什么需要消息系统? Kafka...

2019-08-06 19:55:23

JVM性能调优实践:G1 垃圾收集器介绍篇

前言前面两篇主要整理了性能测试的主要观察指标信息:性能测试篇,以及JVM性能调优的工具:JVM篇。这一篇先简单总结一下GC的种类,然后侧重总结下G1(Garbage-First)垃圾收集器的分代,结合open-jdk源码分析下重要算法如SATB,重要存储结构如CSet、RSet、TLAB、PLAB、CardTable等。最后会再梳理下G1GC的YoungGC,MixedGC收集过程。GC...

2019-07-30 20:34:26

JVM性能调优实践

前言在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践——性能指标分析。JVM的调优和故障处理可以使用JDK的几个常用命令工具。因为本文是基于Docker容器内部的Springboot服务。需要调整一下docker容器的启动参数,才可以使用jmap等工具...

2019-07-30 09:13:02

关于java的响应式编程框架----SpringReactor

关于Reactor的介绍Reactor是Spring中的一个子项目是一个基于java的响应式编程框架,此框架是Pivotal公司(开发Spring等技术的公司)开发的,实现了ReactiveProgramming(反应式编程即响应式编程)思想,符合ReactiveStreams规范(ReactiveStreams是由Netflix、TypeSafe、Pivotal等公...

2019-07-30 08:29:35

git clone remote: HTTP Basic: Access denied

gitclone项目失败,报下面的错误信息:$gitclonehttp://192.168.0.141/xxxx.gitCloninginto'appEnterprise'...remote:HTTPBasic:Accessdeniedfatal:Authenticationfailedfor...因为之前输入错误的gitlab用户名和密码,第二次clone...

2019-07-26 15:10:14

基本概率模型和贝叶斯定理

基本概率模型这里简单介绍三个概念,古典概型,频率学派,贝叶斯学派。古典概型这个模型下,随机实验所有可能的结果是有限的,并且每个基本结果发生的概率是相同的比如:投掷一枚均匀硬币,结果只有两种(假设硬币没有立起来),正面朝上和反面朝上,那么正面朝上的的概率就是0.5。这是基于古典概率模型的计算。频率学派认为待估计参数是某个未知的常量,通过多次试验,统计事件发生的次数占总试验的比值...

2019-07-26 13:43:12

用贝叶斯来看看抛硬币的概率

前面介绍了贝叶斯学派的思想和先验分布、后验分布的相关知识,古典频率学派认为抛硬币的概率是常数,本文从贝叶斯学派的角度看待抛硬币的概率问题。本文详细介绍了分布,重述贝叶斯思想,对于抛硬币的概率问题作各种情况的分析,最后总结全文。目录为什么选择分布作为先验分布 重述贝叶斯思想 抛硬币问题的多情况分析 总结1.为什么选择分布作为先验分布本节详细介绍分布的定义及解释选择...

2019-07-26 13:29:09

快速搞懂ThreadLocal实现原理

文章目录一、ThreadLocal使用案例二、ThreadLocal类的实现原理2.1核心方法set()2.2核心方法get()2.3核心方法remove()三、ThreadLocal.ThreadLocalMap结构分析四、ThreadLocal内存泄漏问题参考资料维持线程封闭性可以通过Ad-hoc线程封闭、栈封闭来实现,一种更加规范的方法是使用ThreadLocal类。...

2019-07-26 10:25:08

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

Http协议,对于拥有丰富开发经验的程序员来说简直是信手拈来,家常便饭。虽然天天见,但是对于http协议的问题,可能很多人在没有积极准备的情况下,不一定能很好的回答出来。今天,我们就来讲讲http2.0和之前版本的区别。一、HTTP定义HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。...

2019-07-25 10:41:22

BTrace简介及使用

背景在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据信息,我们可以通过改写代码,增加日志信息的打印,再发布到生产环境。通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部署后环境可能已被破坏,很难重新问题的场景。对于程序员来说最头大的问题之一就是线上出了故障了,但是我们...

2019-07-12 15:00:39

G1 GC 日志格式

在Java9中,G1GC将成为默认的垃圾收集器,G1垃圾收集器的关键特性之一是能够在不牺牲吞吐量的同时,限制GC暂停时间(即可以设置所需的最大停顿时间)。由于G1GC正在逐渐成为默认的垃圾收集器,它的使用与关注度也会逐渐增加。因此在调整JVM大小和排查问题的情况下,必须先理解G1GC的日志格式,接下来将介绍如何理解G1GC的日志格式。由于G1GC日志中...

2019-07-09 20:57:04

full GC排查案例

https://www.cnblogs.com/QG-whz/p/9647614.html问题出现:现网CPU飙高,FullGC告警CGI服务发布到现网后,现网机器出现了FullGC告警,同时CPU飙高99%。在优先恢复现网服务正常后,开始着手定位FullGC的问题。在现场只能够抓到四个GC线程占用了很高的CPU,无法抓到引发FullGC的线程。查看了服务故障期间的错误日志,发现更...

2019-07-09 19:59:41

G1 解决Evacuation Failure和Humongous Allocation

希望您对G1有所了解。在jdk8中,我们很多会使用G1垃圾收集器,她是目前唯一跨越年轻代和年老代的垃圾收集器。里面有一个混合垃圾收集,可以清理全部的年轻代和部分年老代。G1里面东西还有很多,希望读者有一定的基础,下面我们来说说gc日志中常出现的两个组词:EvacuationFailure和HumongousAllocation。为什么只说这两个呢?很简单,因为它们耗时多!直接关系到系统性能。...

2019-07-09 19:03:30

submit与execute区别

(1)可以接受的任务类型submit:execute:可以看出:execute只能接受Runnable类型的任务submit不管是Ru...

2019-07-09 18:08:27

“堆外内存泄漏”排查及经验总结

背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于SpringBoot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M-XX:MaxMetaspaceSize=256M-XX:+AlwaysPre...

2019-07-09 15:56:35

SEDA: An Architecture for Well-Conditioned, Scalable Internet Services

MattWelsh,DavidCuller,andEricBrewerComputerScienceDivisionUniversityofCalifornia,Berkeley{mdw,culler,brewer}@cs.berkele...

2019-07-09 15:25:19

Java性能问题定位

一句话总结:从问题现象为入口,归结为3类问题进行定位分析:内存满、CPU高、线程阻塞。首先先介绍下jvisualvm这款jdk自带的性能工具。通常我们要定位哪块代码性能差,耗时久,最原始的办法就是在各个方法前后日志打印时间戳并计算耗时,这种方法很繁琐,通常要加很多日志多次部署才能定位到,我一开始也是这么搞的。而使用jvisualvm工具则可以直接查看整个业务代码调用链中各个方法的耗时及占比,直...

2019-07-05 19:59:31

Java 线程状态之 TIMED_WAITING

定义一个正在限时等待另一个线程执行一个动作的线程处于这一状态。Athreadthatiswaitingforanotherthreadtoperformanactionforuptoaspecifiedwaitingtimeisinthisstate.更详细的定义还是看javadoc(jdk8):带指定的等待时间的等待线程所处的...

2019-07-05 16:19:46

查看更多

勋章 我的勋章
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得