Skip to main content

moregeek program

软件设计文档最容易忽略内容看这里!-多极客编程

如果你是软件开发人员或架构师,一定知道开发行业里普遍存在这样一种“文档纠结症”:一面抱怨写文档浪费时间,一面抱怨别人不写文档。可以说,设计文档可以说是日常工作中非常重要但又容易被忽略的部分。编写软件设计文档(SDD)的好处很多,其主要目的是使开发者对软件设计进行强制性思考, 并收集他人的反馈, 以便更好地完成工作。同时也是让其他人了解系统的参考文档。好的文档与项目成功之间有很强的关联性。相信很多网

Read More

商城秒杀系统分析与设计-多极客编程

1. 系统说明1.1 概述      秒杀:即大量用户在极短时间内同时竞争获取有限的资源。秒杀活动本身也是业务推广的重要手段。商家预设固定数量的低价或免单商品,供消费者在指定开始时间购买商品。秒杀实际是瞬时超大并发访问业务系统的场景,需要解决的问题是如何在秒杀的业务场景下保证系统的正常运行。场景的秒杀场景: 春节火车票购票双十一购物节特价商品1.2 核心问题      秒杀最能考验系统负载能

Read More

【ShardingSphere技术专题】带你一同认识一下ShardingJDBC是什么?(高手勿入)-多极客编程

ShardingJDBC的背景介绍 目前存在的痛点 业务场景:传统数据存储方式采用单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景。 性能方面:由于关系型数据库大多采用 B+ 树类型的索引,【在数据量超过阈值的情况下,索引深度的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降】,同时,【高并发访问请求也使得集中式数据库成为系统的最大瓶颈

Read More

【SpringCloud技术专题】「Hystrix技术分析」故障切换的运作流程(含源码)-多极客编程

背景介绍 目前对于一些非核心操作,如增减库存后保存操作日志发送异步消息时(具体业务流程),一旦出现MQ服务异常时,会导致接口响应超时,因此可以考虑对非核心操作引入服务降级、服务隔离。 Hystrix说明 官方文档 Hystrix是Netflix开源的一个容灾框架,解决当外部依赖故障时拖垮业务系统、甚至引起雪崩的问题。 为什么需要Hystrix? 在大中型分布式系统中,通常系统很多依赖(

Read More

【优化技术专题】「线程间的高性能消息框架」再次细节领略Disruptor的底层原理和优势分析-多极客编程

Disruptor原理 首先Disruptor是为了解决高并发缓存的队列,为线程间通讯提供高效的性能,它是如何做到无阻塞、多生产、多消费的? 上图简单的画了一下构建Disruptor的各个参数以及 ringBuffer 的构造,下面简单的说一下。 生产者需要组件 生产者,产生消息,并将消息发布到RingBuffer内存队列中。 Event模型:从生产者传递给消费者的数据单位,完全由用户定义

Read More

【Spring功能介绍】加载时织入机制的Aspectj和LoadTimeWeaving技术-多极客编程

前提介绍 当我们聊到Spring框架的项目实际开发中,用的强大的功能之一就是(面向切面编程)的这门AOP技术。如果使用得当,它的最大的作用就是侵入性比较少并且简化我们的工作任务(节省大量的重复性编码),最为重要的一点是,它可以让我们在不改变原有代码的情况下,织入我们的逻辑,尤其是在我们没有源代码的时候,而且当我们恢复之前的逻辑的时候,只需要去掉代理就可以了。 AOP的动态代理 Spring AOP

Read More

「绝密档案」“爆料”完整秒杀架构的设计到技术关键点的“八卦追踪”-多极客编程

承接上文 承接信息内容:「绝密档案」“爆料”完整秒杀架构的设计到技术关键点的“情报信息”之后,我们再出了姊妹篇,八卦追踪,进行介绍相关的后续的内容信息控制。 本章内容 在此会进行扩展技术介绍,以下内容: 架构思考 三高特性的介绍 CAP一致性理论 热点分离 热点识别技术 热点隔离技术 热点优化技术 数据高可用 读写分离 分库分表 数据合并 数据库调优 DB层面的单行记录做并发排队

Read More

【SpringBoot技术专题】「开发实战系列」动态化Quartz任务调度机制+实时推送任务数据到前-多极客编程

前提介绍 SpringBoot2.0整合quartz实现多定时任务动态配置,实现任务增删改,生成Cron表达式 动态化任务调度 添加依赖包 <!-- quartz --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin

Read More

【Spring源码分析】带你正视一下Spring祖容器之BeanFactory的原理与功能分析(1)-多极客编程

BeanFactory BeanFactory是Spring bean容器的根接口,BeanFactory作为应用集中配置管理的地方,极大简便应用开发,这样开发人员可以集中与业务,这边定义了一系列的接口,通过这些接口的学习,可以大致了解BeanFactory体系各接口如何分工合作. BeanFactory类的介绍 BeanFactory是Spring实现依赖注入的核心接口,提供应用的统一配置

Read More

【Spring功能介绍】从零开始教你SpringEL表达式使用和功能分析讲解指南(上篇)-多极客编程

Spring EL表达式语言,这种语言jsp中学到的el,但是在整个spring之中其表达式语言要更加的复杂,而且支持度更加的广泛,最重要的是他可以进行方法的调用,对象的实例化,集合操作等等,但是唯一的难点就是:代码太复杂了,表达式太复杂了。 深刻领会,spring中针对于字符串的改进,程序员使用字符串开发,绝对要比使用那些类简单,所以在spring里面无时无刻提供的就是字符串的加强。 使用案

Read More

【SpringBoot技术专题】「权限校验专区」Shiro整合JWT授权和认证实现-多极客编程

本章介绍一下常用的认证框架Shiro结合springboot以及集合jwt快速带您开发完成一个认证框架机制。 Maven配置依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <

Read More

计算机进程和线程-多极客编程

    计算机系统中,进程和线程是非常重要的概念。        一个进程就是一个正在执行的程序,包括pc、寄存器和变量的当前值,多个进程共享着物理内存、磁盘、打印机和其他资源。一般来说,每个进程有一个地址空间和一个在CPU上被调度执行的实体——线程。在同一个进程的环境中,允许并行运行彼此之间有独立性的多个线程,多个线程共享着进程的地址空间、打开文件集、子进程、报警及相关信号等其他资源。     

Read More

【SpringBoot技术专题】教你如何开发一个”可移植“的轻量级文件服务项目系统!-多极客编程

可移植且纯Java开发的FTP服务器引擎之【Apache FtpServer】 Apache ftpserver相关简介 Apache FtpServer是100%纯Java FTP服务器。它被设计为基于当前可用的开放协议的完整且可移植的FTP服务器引擎解决方案。FtpServer可以作为Windows服务或Unix / Linux守护程序独立运行,也可以嵌入Java应用程序中。 还提供

Read More

SpringCloud-技术专区-从源码层面让你认识Eureka工作流程和运作机制(下)-多极客编程

承接上文的对应的Eureka的上篇介绍,我们开始介绍,详见 [【SpringCloud技术专题】「Eureka源码分析」从源码层面让你认识Eureka工作流程和运作机制(上)] 原理回顾 Eureka Server 提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面

Read More

【Java技术指南】「任务调度框架」基于Quartz系列的任务调度框架的动态化任务实现分析-多极客编程

不提XXLJOB或者其他的调度框架,就看我接触的第一个任务调度框架Quartz(温故而知新) Quartz的动态暂停 恢复 修改和删除任务 实现动态添加定时任务,先来看一下我们初步要实现的目标效果图,这里我们只在内存中操作,并没有把quartz的任何信息保存到数据库,即使用的是RAMJobStore, 当然如果你有需要,可以实现成JDBCJobStore,那样任务信息将会更全面。 例如

Read More

【算法与数据结构系列】「限流算法专项」带你认识常用的限流算法的技术指南(分析篇)-多极客编程

限流 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理 限流一词常用于计算机网络之中,定义如下: In computer networks, rate limiting is used to control the rate of traffic sent or received by a netw

Read More

游戏工程师成长(二) 积极主动-多极客编程

人手永远是不够的,事情是永远做不完的 很多人会以为任务都只能被安排,这可能跟一直以来项目进度都比较赶有关。每个任务都是由上头派发下来的,久而久之就会以为只能被动接受任务。但是其实是可以主动去找事情做的的。 人手永远是不够的,事情永远是做不完的,如果有自己想做的事情,不要想着等忙完当前的任务,我就去做。这样可能永远也等不到,因为任务会一个接着一个来,可以早点去请求自己想要的任务,或者自己创造任务(不

Read More

【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍-多极客编程

Jenkins基础介绍篇 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 通过Jenkins实现自动化部署项目,本地git提交代码Jenkins自动化将项目部署在Linux服务器。 Jenkins技术原理篇 版本控制服务 Jenkins自动化部署服务 Jenkins环境搭建篇

Read More

「推荐收藏!」【MySQL技术之旅】(2)「主从架构」MySQL主从数据同步模式的指南分析-多极客编程

MySQL的主从复制 一般在大规模的项目上,都是使用MySQL的复制功能来创建MySQL的主从集群的。 主要是可以通过为数据库服务器配置一个或多个备库的方式来进行数据同步。 复制的功能不仅有利于构建高性能应用,同时也是高可用、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。 通过MySQL的主从复制来实现读写分离,相比单点数据库又读又写来说,提升了业务系统性能,优化了用户体验。 另外通过主

Read More

SpringCloud-技术专区-从源码层面让你认识Eureka工作流程和运作机制(上)-多极客编程

前言介绍 了解到了SpringCloud,大家都应该知道注册中心,而对于我们从过去到现在,SpringCloud中用的最多的注册中心就是Eureka了,所以深入Eureka的原理和源码,接下来我们要进行讲解下eureka的源码分析,由此应运而产生的本章节的内容。 基本原理 Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka

Read More