- 博客(131)
- 收藏
- 关注

原创 红包雨架构设计---1、技术架构
概述京东、淘宝的红包雨相信大家都参与过,其实业务并不复杂,在某段时间内随机发放不同的红包,用于进行抢单抽奖,直到奖品抽完。应用场景时间随机在一段时间内,设置一批礼品,这些礼品不定时的出现,尽量在这段时间内均匀抛出,一旦出现,就可以被抓走。类似抓红包。瞬间秒杀用于抢单或者秒杀场景,到点后,用户一起抽奖,机会均等,谁抢的快算谁的。这个并发比较高。但是活动时间相对较短。机会随机常见于转盘类活动。不同等级的用户,设定不同的中奖概率,一般配合设置用户最大可抽奖次数,比如5次机会, 能不能中奖,根据概
2022-03-24 18:58:05
16867
1

原创 深入浅出业务幂等性---1、幂等性介绍与接口幂等
微服务与幂等性随着应用架构由单体架构到微服务架构进行演变,现如今市面上超过50%的应用都会基于分布式或微服务完成系统架构设计。在微服务架构体系内,就会存在若干个微服务,这些服务可能基于RPC或者HTTPS等协议进行通讯。那么既然服务之间存在相互调用,那么必然存在服务调用延迟或者失败的情况,当出现这种问题,服务端会进行重试等操作或客户端有可能会进行多次点击提交。如果这样请求多次的话,那最终处理的数据结果就一定要保证统一,如支付场景。此时就需要通过保证业务幂等性方案来完成。幂等性简介幂等本身是一个数学概念
2022-03-22 19:22:44
11698

原创 数据库优化专题---1、表的主键用数字还是UUID
最近思考和摸索一些数据库优化内容,与大家分享下。表的主键用数字还是UUID?什么是UUID?UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。UUID由以下几部分的组合:...
2020-05-06 23:52:52
10278
1

原创 消息通知系统详解1---通讯方式
目录什么是消息通知系统系统特性通讯方式短连接长连接短连接和长连接的区别通讯流程适用场景websocket协议什么是websocket协议三种通信方式的优缺点什么是消息通知系统消息通知系统,顾名思义即通知消息的传达处理系统。目的是为了让用户获得需要得到的消息及提醒并进行处理。消息通知微服务的定位是“平台内”的“消息”功能,分为全员消息,订阅类消息,点对点消息。例如系统通知,私信,@类消息全...
2020-04-08 15:19:54
12012

原创 分布式事务详解1---什么是分布式事务
分布式事务详解1---什么是分布式事务分布式事务详解2---解决方案分布式事务详解3---Seata分布式事务框架今天我们来介绍下分布式事务以及分布式事务的解决方案。1 什么是分布式系统? 部署在不同结点上的系统通过网络交互来完成协同工作的系统。 比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同...
2019-12-27 17:17:57
10362

原创 ELFK日志平台入门1---架构设计
ELFK日志平台入门1---架构设计ELFK日志平台入门2---Elasticseach集群搭建 ELFK日志平台入门3---Kibana搭建ELFK日志平台入门4---Kafka集群搭建ELFK日志平台入门5---Logstash+Filebeat集群搭建1、什么是ELK 日志,对于任何系统来说都是及其重要的组成部分。在计算机系统里面,更是如此。但...
2019-11-04 18:02:57
11905
2

原创 DevOps入门详解1---DevOps介绍
DevOps入门详解1---DevOps介绍DevOps入门详解2---可持续集成jenkinsDevOps入门详解3---容器管理平台Rancher1 DevOps介绍 1.1 什么是DevOps DevOps是Development和Operations两个词的缩写,引用百度百科的定义: DevOps是一种方法或理念,它涵盖开发、测试、...
2019-08-19 15:33:20
12875

原创 为什么互联网项目适用敏捷开发
上面一篇文章我们提过为什么分布式需要做前后端分离,今天这篇我们从开发模式来详解为什么互联网项目使用于敏捷开发?因为笔主经历过瀑布开发模式和敏捷开发模式这两种开发模式,所以存在有一些自己的见解跟大家交流。下面所以我们这边先来简单介绍下这两种模式:瀑布开发模式:瀑布开发模式是由W.W.Royce在1970年最初提出的软件开发模型,瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型...
2018-10-09 17:08:50
12142

原创 Docker安装ElasticSearch
上一篇我们介绍了Docker的一些入门,这篇我们来实战安装下ElasticSearch。一、Docker 部署 ElasticSearch1、从仓库中查找所有ElasticSearch的镜像[root@iZwz99dhxbd6xwly17tb3bZ app]# docker search elasticsearchINDEX NAME ...
2018-09-24 12:59:32
14461
3

原创 详解互联网APP架构1.0
详解互联网APP架构1.0详解互联网APP架构2.0由于最近负责一个互联网APP项目,需要重新设计架构,这边架构已经设计完成,跟小伙伴们分享下设计思想:首先我们分析大概的需求,可归结为以下几点:此项目为互联网项目,后期用户量可能会增长; 需要涉及支付,可能需要对接支付宝、微信、银联等第三方支付接口,当然会涉及交易流水等记录数据; 需要对接外部其他系统的接口,接口协议以Http或......
2018-09-11 20:44:33
21740

原创 详解APP的Token验证机制
由于最近负责的一个互联网APP项目中需要用到Token验证机制,所以这边抽空整理下整体流程。我们知道现在最通用的Token是基于JWT来实现,简单来说其实就是用PublicKey来进行加密,生成的Token里面包含用户Id等信息,但是作为APP这种C/S体系结构来说,存在这样的问题:1、PublicKey由客户端来存储,涉及版本更新迭代问题,并不好更改PublicKey;2、各个用户的......
2018-09-11 19:42:13
47586
17

原创 详解为什么分布式需要做前后端分离
因为公司以往项目前后端未分离开发,在最近负责的项目中尝试采用前后端分离来提高整体开发效率。因为写代码资历不是很老,没有经历过更早的时期了,刚毕业SpringMVC和Struts2等架构已经很成熟,所以最早接触的开发方式就是从MVC开发方式开始的,下面我们将开发方式分为未分离,半分离和分离三个时期来做详解。未分离时期大致就是所有的请求都被发送给作为控制器的Servlet,它接受请求,并根...
2018-09-05 23:34:52
13637

原创 docker安装fastDFS文件存储,并与springMVC集成
因为项目需要搭建文件服务器,研究后,最后选型FastDFS分布式文件存储系统。由于docker镜像安装的方便化,所以决定采用docker安装。拉取镜像 docker pull morunchang/fastdfs查看镜像[root@iZh3cshm0xz7wjZ ~]# docker imagesREPOSITORY T...
2018-05-03 22:14:00
12873
4
原创 UML系统建模专题---2、UML常用工具介绍
常见的UML建模工具介绍,包含Rational Rose、RSA、 Enterprise Architect、StarUML、VISIO等
2023-12-18 09:46:24
580
原创 UML系统建模专题---1、UML概述和理论
Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言,语言,也就是一个表达思想的符号约定
2023-12-18 09:44:32
1126
原创 数据结构和算法专题---9、一致性hash及应用
负载均衡策略中,我们提到过源地址hash算法,让某些请求固定的落在对应的服务器上。这样可以解决会话信息保留的问题。同时,标准的hash,如果机器节点数发生变更。那么请求会被重新hash,打破了原始的设计初衷,怎么解决呢?一致性hash上场。
2023-12-09 11:16:57
503
原创 数据结构和算法专题---7、负载均衡算法与应用
本章我们会对负载均衡算法做个简单介绍,包括常用的负载均衡算法(轮询、随机、哈希等)的概述、实现方式、典型场景做个说明。
2023-12-08 18:32:17
1089
原创 Java最全面试题专题---1、Java基础知识(2)
笔者有七八年的面试者经验,负责公司技术同学的社招和校招,近些年面试过三四百个技术同学,考虑接近年底这个时段,整理并更新一些以往的面试经验,希望同学们跳槽能有个更好的工作,如有需要的同学可以关注下笔者,近期会迭代更新。这章更新Java面向对象的面试题。
2023-12-07 21:46:52
916
原创 Java最全面试题专题---1、Java基础知识(1)
笔者有七八年的面试者经验,负责公司技术同学的社招和校招,近些年面试过三四百个技术同学,考虑接近年底这个时段,整理并更新一些以往的面试经验,希望同学们跳槽能有个更好的工作,如有需要的同学可以关注下笔者,近期会迭代更新。这章更新Java的基础概述以及基础语法的面试题。
2023-12-07 21:46:00
993
原创 数据结构和算法专题---6、定时算法与应用
系统或者项目中难免会遇到各种需要自动去执行的任务,实现这些任务的手段也多种多样,如操作系统的crontab,spring框架的quartz,java的Timer和ScheduledThreadPool都是定时任务中的典型手段。
2023-12-06 18:34:30
1069
原创 数据结构和算法专题---5、调度算法与应用
调度算法常见于操作系统中,因为系统资源有限,当有多个进程(或多个进程发出的请求)要使用这些资源时,就必须按照一定的原则选择进程(请求)来占用资源。这就是所谓的调度。在现实生活中也是一样,比如会议室的占用。进程调度每次将处理机分配给具有最高优先级的就绪进程。最高优先级算法可与不同的CPU方式结合形成可抢占式最高优先级算法和不可抢占式最高优先级算法。
2023-12-06 18:34:16
1536
原创 数据结构和算法专题---4、限流算法与应用
本章我们会对限流算法做个简单介绍,包括常用的限流算法(计数器、漏桶算法、令牌桶案发、滑动窗口)的概述、实现方式、典型场景做个说明。
2023-12-05 19:49:00
1944
1
原创 数据结构和算法专题---3、失效算法与应用
本章我们会对失效算法做个简单介绍,包括常用的失效算法(先来先淘汰(FIFO)、最久未用淘汰(LRU)、最近最少使用(LFU))的概述、实现方式、典型场景做个说明。
2023-12-05 19:48:39
1390
原创 数据结构和算法专题---2、算法思想
上文讲到算法的概念、复杂度,本文给大家介绍具体的算法思想,让大家对算法设计理念有个认识,后续再分别介绍各种算法。
2023-12-04 19:09:54
1000
原创 数据结构和算法专题---1、数据结构和算法概述
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
2023-12-04 19:09:10
1352
原创 规则引擎专题---5、Groovy环境搭建和基础语法
Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。Groovy是从Java衍生出来的,并且运行在Java虚拟机上的语言.其目标是不管作为脚本语言,还是编程语言,都可以简单、直接使用。Groovy 也并不会替代 Java,而是相辅相成、互补的关系,具体使用哪门语言这取决于要解决的问题和使用的场景。
2023-12-03 11:43:18
1424
原创 规则引擎专题---4、Drools基础语法
在使用Drools时非常重要的一个工作就是编写规则文件,通常规则文件的后缀为.drl。drl是Drools Rule Language的缩写。在规则文件中编写具体的规则内容。Drools支持的规则文件,除了drl形式,还有Excel文件类型的。
2023-12-03 11:41:56
1386
原创 规则引擎专题---3、Drools组成和入门
drools是一款由JBoss组织提供的基于Java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(例如存放在数据库中),使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效。
2023-12-02 11:23:32
1056
原创 规则引擎专题---2、开源规则引擎对比
开源的规则引擎整体分为下面几类:通过界面配置的成熟规则引擎、基于jvm脚本语言和基于java代码的规则引擎,本文将对Drools、Groovy、QLExpress进行对比。
2023-12-02 11:22:07
2125
原创 规则引擎专题---1、什么是规则引擎
规则引擎,全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等。
2023-12-01 17:45:47
1118
原创 TiDB专题---3、TiDB与MySQL兼容性对比
TiDB支持MySQL传输协议及其绝大多数的语法。这意味着您现有的MySQL连接器和客户端都可以继续使用。大多数情况下您现有的应用都可以迁移至 TiDB,无需任何代码修改。
2023-12-01 17:43:12
1368
原创 TiDB专题---2、TiDB整体架构和应用场景
本文主要详解TiDB整体架构,核心组件:TiDB Server,PD Server 和 TiKV Server,以及TiDB实际应用场景,帮助大家更好认识和入手TiDB。
2023-11-30 14:34:50
1465
原创 TiDB专题---1、TiDB简介和特性
TiDB 是一个分布式 NewSQL 数据库,它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。
2023-11-30 14:32:23
1344
原创 得道体育业务中台构建实践
得道体育是一家专注于数字体育,辐射体育机构、赛事、场馆、协会等领域的科技公司。在业务发展的过程中,多个业务场景会存在类似的业务需求,如何通过技术的手段抽象、沉淀这些业务为通用、稳定的基础能力,是得道体育搭建业务中台的初衷。本文将从中台的背景、演变出发,讲述得道体育的建设历程、理念思路及落地成效,探讨如何构建企业级业务中台。
2023-11-29 10:12:20
1794
原创 灰度发布专题---5、API网关灰度发布
前面说到Dubbo灰度发布,那网关代理层如何实现灰度发布呢,在网关层实现灰度发布,我们可以采用2种方式实现,分别是权重和灰度规则配置。
2023-11-29 09:41:18
1922
原创 灰度发布专题---4、APP灰度发布
我们前面讲解了配置文件灰度发布、IP切流、静态页灰度发布,但如果是APP该如何灰度发布呢?APP的灰度发布比较简单,也比较传统,不像我们其他程序能完全自动化操作。
2023-11-29 09:37:36
1160
原创 灰度发布专题---3、Nginx+Lua灰度发布
上一章已经讲解了配置文件灰度发布、应用版本灰度发布、API网关灰度发布实现,但如果用户这时候在代理层如何做灰度发布呢?
2023-11-28 16:12:04
2391
原创 灰度发布专题---2、Dubbo灰度发布
Dubbo的灰度发布常见的方式有版本控制灰度发布、路由灰度发布、基于Apollo实现灰度发布,我们把这每种灰度发布都实现一次。
2023-11-28 11:23:05
1842
原创 全链路压测专题---3、全链路压测具体实现
Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。
2023-10-23 15:28:21
560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人