设计模式/框架源码分析_GOF23 设计模式
设计模式GOF23• 将设计者的思维融入大家的学习和工作中,更高层次的思考!• 创建型模式:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。• 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模 式。• 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模 式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。单例模式核心作用:– 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。常见应用场景:Win
Servlet 和 Tomcat 底层源码分析
一、 Servlet 源码分析1 Servlet 结构图Servlet 和 ServletConfig 都是顶层接口,而 GenericServlet 实现了这两个顶层接口,然后 HttpServlet 继承了 GenericServlet 类.所以要实现一个 Servlet 直接就可以继承 HttpServlet2 Servlet 接口public interface Servlet { //负责初始化 Servlet 对象。容器一旦创建好 Servlet 对象后,就调用此方法来初始化 Se
项目管理——MyBatisPlus
MyBatisPlus核心技术一、MyBatisPlus快速开始1 MyBatisPlus概述MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatisPlus的愿景是成为MyBatis最好的搭档,就像魂斗罗中的1P、2P,基友搭配,效率翻倍官方网址:https://mp.baomidou.com/2 MyBatisPlus准备工作2.1 前期准备准备数据表,导入tb_employee.sql文
分布式RPC调用和分布式文件存储——Zookeeper
Zookeeper 实战主要内容Zookeeper 简介Zookeeper 存储结构监听通知安装 ZookeeperZookeeper 常用命令使用 Java API 操作 ZookeeperZookeeper 实战一、 Zookeeper 简介1 什么是 ZookeeperZookeeper 官网:http://zookeeper.apache.org/Zookeeper 是 Apache 的一个分布式服务框架,是 Apache Hadoop 的一个子项目。官方 文档上这么解释 Z
分布式RPC调用和分布式文件存储_Dubbo 实战
Dubbo 实战主要内容Dubbo 简介Dubbo 架构详解Dubbo 支持的协议Dubbo 支持的注册中心Dubbo 应用Spring Boot 整合 DubboDubbo 监控与管理Dubbo 中服务的负载均衡Dubbo 项目打包方式Dubbo 实战案例一、 Dubbo 简介1 Dubbo 是什么Dubbo 官网地址:http://dubbo.apache.org/zh-cn/Dubbo 最早是 Alibaba 开源的分布式服务框架,它最大的特点是按照分层的方式来架构,
分布式RPC调用和分布式文件存储_FastDFS
FastDFS一、 简介技术论坛: http://bbs.chinaunix.net/forum-240-1.html资源地址: https://sourceforge.net/projects/fastdfs/源码资源: https://github.com/happyfish100FastDFS 是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。 特别适合以文件为载体的在线服务,如相册网站、视频
分布式RPC调用和分布式文件存储_Swagger
一、 Swagger 简介1 前言接口文档对于前后端开发人员都十分重要。尤其近几年流行前后 端分离后接口文档又变成重中之重。接口文档固然重要,但是由于项 目周期等原因后端人员经常出现无法及时更新,导致前端人员抱怨接 口文档和实际情况不一致。很多人员会抱怨别人写的接口文档不规范,不及时更新。当时当 自己写的时候确实最烦去写接口文档。这种痛苦只有亲身经历才会牢 记于心。如果接口文档可以实时动态生成就不会出现上面问题。Swagger 可以完美的解决上面的问题。2 Open API 是什么Open A
全文检索服务_【Solr】
主要内容Solr 简介Solr 搜索原理Solr 单机版安装可视化管理界面新建核心分词Dataimport使用 SolrJ 操作 SolrSpring Data for Apache SolrSolrCloud一、 Solr 简介1 为什么使用 Solr在海量数据下,对 MySQL 或 Oracle 进行模糊查询或条件查询的效率是很低的。而搜 索功能在绝大多数项目中都是必须的,如何提升搜索效率是很多互联网项目必须要考虑的问题。既然使用关系型数据库进行搜索效率比较低,最直接的解
全文检索服务 _ ElasticSearch
一、Elasticsearch介绍Elasticsearch是一个全文检索服务器1 全文检索全文检索是一种非结构化数据的搜索方式。结构化数据:指具有固定格式固定长度的数据,如数据库中的字段。非结构化数据:指格式和长度不固定的数据,如电商网站的商品详情。结构化数据一般存入数据库,使用sql语句即可快速查询。但由于非结构化数据的数据量大且格式不固定,我们需要采用全文检索的方式进行搜索。全文检索通过建立倒排索引加快搜索效率。2 倒排索引索引:将数据中的一部分信息提取出来,重新组织成一定
容器化技术【Docker】
Docker技术应用与实战一、 Docker的安装和介绍1 没有Docker的世界1.1 场景一 节省项目环境部署时间问题:每次部署项目到测试、生产等环境,都要部署一大推以来的软件,工具,花费很长时间。使用docker可以实现一次构建多次部署,一劳永逸。1.2 场景二 环境一致性问题:程序在我这里跑跑得好好的,在你那怎么就不行呢?版本一致性:包括操作系统、数据库、中间件的版本,被测系统的版本。配置一致性:系统(操作系统/数据库、中间件/被测试系统)参数的配置一致。1.3 场景三 持续集
全文检索服务_Elastic Stack
集中化日志平台Elastic Stack一、Elastic Stack概念1 Elastic Stack介绍日志在项目中起到了性能监控、异常定位、数据分析等非常重要的作用。虽然主流工具如Tomcat,Nginx等都会生成日志文件。但在分布式架构中,不同的服务部署在不同的服务器上,这样就产生了日志量大,数据分散,搜索不方便等问题。于是我们需要搭建集中式日志平台,将所有节点上的日志进行统一管理,让日志数据最大限度的发挥作用。Elastic公司提供了一整套搭建集中式日志平台的解决方案。最开始由Elasti
Spring Cloud 微服务技术栈
Spring Cloud 简介主要内容微服务简介SpringCloud 简介SpringCloud 框架结构SpringCloud 和 Dubbo 的对比SpringCloud 版本号说明Spring Cloud 简介一、 微服务简介1 什么是微服务?微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTT
Spring Cloud Alibaba技术栈【上】
Spring Cloud Alibaba来自阿里的微服务解决方案一、项目简介Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。...
Spring Cloud Alibaba 技术栈【中】
Spring Cloud Alibaba Sentinel一、Sentinel 简介随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等。完备的实时监控: Sentinel 同时提供实
Spring Cloud Alibaba技术栈【下】
Spring Cloud Alibaba Dubbo一、项目简介Dubbo Spring Cloud 基于 Dubbo Spring Boot 2.7.1 和 Spring Cloud 2.x 开发,无论开发人员是 Dubbo 用户还是 Spring Cloud 用户,都能轻松地驾驭,并以接近“零”成本的代价使应用向上迁移。Dubbo Spring Cloud 致力于简化 Cloud Native 开发成本,提高研发效能以及提升应用性能等目的。Dubbo Spring Cloud 首个 Preview
从零深入Chrome插件开发
使用Chrome插件可以为Chrome浏览器带来一些功能性的扩展,进而提高使用体验;俗话说的好Chrome没插件,香味少一半,Chrome最大的优势还是其支持众多强大好用的扩展程序。
MySQL 8.0.17单机以及主备模式参数配置
近期由于业务需要将系统升级到CentOS7.9,同时因为漏洞问题将数据库升级至系统默认的8.0.17版本。测试过程中出现以下问题(对比早期5.7版本):1、数据insert效率奇慢无比,测试数据为20条/秒,与上一版本有上百倍差距,查阅一些资料后是由于MySQL8版本默认开启了log-bin以及log-bin-index,系统命令行方式关闭后,insert效率与5.7版本相当,修改方式如下:set global log_bin=off; set global log_bin_index=off
CentOS无人值守U盘安装(丢掉你的键盘鼠标)
CentOS默认镜像安装时使用界面模式,但有些情况下确实缺少鼠标键盘设备无法方便的进行安装,现放出kickstart工具的完整ks.cfg以及isolinux.cfg文件,请各位随时取用!针对EFI模式补充EFI配置文件支持BIOS以及EFI两种模式。#ks.cfg## Kickstart file automatically generated by anaconda# Install, not upgradeinstallcdrom# enable graphical#grap
Linux C 内核态B+树(源码)
最近项目需要存储短时大量的数据结构(存在重复KEY)同时需要具有相当的效率,考虑一段时间后结合早期经验决定使用B+树设计此类存储结构。B+树结构具有相对稳定的查询效率,在存储中应用可能较多,如存储的元数据,在设计中可能存在某些适应性的修正,但其基础特性并不会改变。本次实现主要是在内核层,但是由于主要是为了项目的需求所以节点数据并不通用,有需要的可能需要二次修改。内核代码:/* ktls-bplus.c */#include "ktls-bplus.h"static void du..
今日推荐
周排行