![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
架构
文章平均质量分 73
架构
xishilife
这个作者很懒,什么都没留下…
展开
-
Gateway网关简介及使用
Gateway网关简介及使用1. 什么是 API 网关(API Gateway)分布式服务架构、微服务架构与 API 网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平 台无关的服务协议作为各个单元间的通讯方式。API 网关的定义网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。API 网关是原创 2021-12-21 11:31:07 · 426 阅读 · 0 评论 -
spring boot集成kafka - spring-kafka
前言kafka是一个消息队列产品,基于Topic partitions的设计,能达到非常高的消息发送处理性能。Spring创建了一个项目Spring-kafka,封装了Apache 的Kafka-client,用于在Spring项目里快速集成kafka。除了简单的收发消息外,Spring-kafka还提供了很多高级功能,下面我们就来一一探秘这些用法。项目地址:https://github.com/spring-projects/spring-kafka简单集成引入依赖<dependenc原创 2021-10-11 14:16:44 · 428 阅读 · 0 评论 -
接口性能测试方案
一、 性能测试术语解释1. 响应时间响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。响应时间按软件的特点再可以细分,如对于一个 C/S 软件(B/S一样)的响应时间可以细分为网络传输时间、应用服务器处理时间、数据库服务器处理时间。另外客户端自身也存在着解析时间、界面绘制呈现时间等。响应时间主要站在客户端角度来看的一个性能指标,它是用户最关心、并且容易感知到的一个性能指标。2. 吞吐率吞吐率指单位时间内系统处理用户的请求数,从业务角度看,吞吐率可以用每秒...原创 2021-09-12 22:44:19 · 2657 阅读 · 0 评论 -
OLAP数据库
OLAP百家争鸣OLAP简介OLAP,也叫联机分析处理(Online Analytical Processing)系统,有的时候也叫DSS决策支持系统,就是我们说的数据仓库。与此相对的是OLTP(on-line transaction processing)联机事务处理系统。联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。Codd认为联机事务处理(OLT原创 2021-09-10 23:36:25 · 4387 阅读 · 0 评论 -
OLTP与OLAP的区别
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;OLAP 系统则强调数据分析,强调SQ原创 2021-09-10 23:23:01 · 754 阅读 · 0 评论 -
统一身份认证和授权--微服务架构
一、预备知识本文讨论基于微服务架构下的身份认证和用户授权的技术方案,在阅读之前,最好先熟悉并理解以下几个知识点:微服务架构相关概念:服务注册、服务发现、API 网关 身份认证和用户授权:SSO、CAS、OAuth2、JWT文章在涉及到上述知识内容时,会附上参考链接。二、背景当企业的应用系统逐渐增多后,每个系统单独管理各自的用户数据容易行成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进。当企业的互联网业务发展到一定规模,构建统一的标准化账户管理体系将是必不可少的,因为它是企业互联网转载 2021-08-30 17:38:34 · 2525 阅读 · 1 评论 -
Dubbo:从入门到实战
一 为什么需要 dubbo很多时候,其实我们使用这个技术的时候,可能都是因为项目需要,所以,我们就用了,但是,至于为什么我们需要用到这个技术,可能自身并不是很了解的,但是,其实了解技术的来由及背景知识,对于理解一项技术还是有帮助的,那么,dubbo是怎么被提上日程的呢?在互联网的发展过程中,在以前,我们只需要一个服务器,将程序全部打包好就可以,但是,随着流量的增大,常规的垂直应用架构已无法应对,所以,架构就发生了演变。1 单一应用架构2 应用和数据库单独部署3 应用和数据库集群部署4转载 2021-08-29 20:01:48 · 16379 阅读 · 0 评论 -
Spring AOP中的JDK和CGLib动态代理效率对比
一、背景今天有小伙伴面试的时候被问到:Spring AOP中JDK 和 CGLib动态代理哪个效率更高?二、基本概念首先,我们知道Spring AOP的底层实现有两种方式:一种是JDK动态代理,另一种是CGLib的方式。自Java 1.3以后,Java提供了动态代理技术,允许开发者在运行期创建接口的代理实例,后来这项技术被用到了Spring的很多地方。JDK动态代理主要涉及java.lang.reflect包下边的两个类:Proxy和InvocationHandler。其中,Invocati原创 2021-08-28 11:07:30 · 862 阅读 · 2 评论 -
Zookeeper全解析——Paxos详解
Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Paxos的改进或简化。有个问题要提一下,Paxos有一个前提:没有拜占庭将军问题。就是说Paxos只有在一个可信的计算环境中才能成立,这个环境是不会被入侵所破坏的。关于Paxos的具体描述可以在Wiki中找到:http://zh.原创 2021-08-28 00:17:50 · 625 阅读 · 0 评论 -
zookeeper详解
1、zookeeper是什么ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop的重要组件,CDH版本中更是使用它进行Namenode的协调控制。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。zookeeper到底能为我们的分布式系统做什么事情呢:管原创 2021-08-27 23:20:21 · 502 阅读 · 0 评论 -
Redis的线程模型
为了接下来一篇博客,能使读者更加完整地学习线程模型,所以本文对Redis的线程模型进行必要的讲解。由于《Redis设计与实现》对于Redis的讲解简练优雅,所以本文大部分内容节选自本书,也欢迎对Redis有更多底层了解需求的读者,自行购买学习。文件事件处理器Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。因为文件事件分派器队列的消费是单线程的,所以Redis才叫单线程模型。消息转载 2021-08-27 17:09:55 · 108 阅读 · 0 评论 -
Redis实现延时队列
使用sortedset,使用时间戳做score, 消息内容作为key,调用zadd来生产消息,消费者使用zrangbyscore获取n秒之前的数据做轮询处理。原创 2021-08-27 16:55:43 · 72 阅读 · 0 评论 -
过滤器之Cuckoo filter 布谷鸟
这一篇讲的是布谷过滤器(cuckoo fliter),这个名字来源于更早发表的布谷散列(cuckoo hash),尽管我也不知道为什么当初要给这种散列表起个鸟名=_=由于布谷过滤器本身的思想就源自于布谷散列,那么我们就从布谷散列开始说它的设计思想。产生布谷散列表的一个重要背景是人们对于球盒问题的分析:给定N个球,随机的放在N个盒子里,在装球最多的盒子里,球的个数的期望是多少?答案是Θ(logN/loglogN)Θ(logN/loglogN),这个问题其实就是散列表装填因子为1时的情况分析。后来有一天,人原创 2021-08-26 10:39:19 · 279 阅读 · 0 评论 -
SpringBoot+Redis 布隆过滤器 防恶意流量击穿缓存
什么是恶意流量穿透假设我们的Redis里存有一组用户的注册email,以email作为Key存在,同时它对应着DB里的User表的部分字段。一般来说,一个合理的请求过来我们会先在Redis里判断这个用户是否是会员,因为从缓存里读数据返回快。如果这个会员在缓存中不存在那么我们会去DB中查询一下。现在试想,有千万个不同IP的请求(不要以为没有,我们就在2018年和2019年碰到了,因为攻击的成本很低)带着Redis里根本不存在的key来访问你的网站,这时我们来设想一下:请求到达Web服务器;.转载 2021-08-26 10:29:01 · 951 阅读 · 0 评论 -
JAVA-幂等性(二):高并发的系统如何保证幂等性
转载自:https://www.cnblogs.com/geyifan/p/6128425.html一、什么是幂等性幂等概念来自数学,表示N次变换和1次变换的结果是相同的。这里讨论在某些场景下,客户端在调用服务没有达到预期结果时,会进行多次调用,为避免多次重复的调用对服务资源产生副作用,服务提供者会承诺满足幂等。HTTP/1.1中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的副作用(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。转载 2021-08-20 15:16:34 · 518 阅读 · 0 评论 -
Select … for update--手工加锁语句
Select … for update语句是我们经常使用手工加锁语句。通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作。同时,在多版本一致读机制的支持下,select语句也不会被其他类型语句所阻碍。 借助for update子句,我们可以在应用程序的层面手工实现数据加锁保护操作。本篇我们就来介绍一下这个子句的用法和功能。 下面是采自Oracle官方文档...原创 2011-10-11 15:00:10 · 1326 阅读 · 0 评论