自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

何哥的博客

Bug工程师,面向浏览器编程

  • 博客(284)
  • 收藏
  • 关注

原创 Java架构师学习小目标

目前需要加强的方向,分布式架构、大数据技术、Docker+K8S容器、JVM调优。希望以后能对于老生常谈的云原生、数据治理、DevOps、ServerLess、ServiceMesh等技术架构谈笑风生。

2020-09-23 00:04:05 1079 1

原创 Nginx反向代理前后端应用

前言:ngxin直接反向代理前端和后端项目。

2024-01-31 10:39:09 129

原创 Web前端开发工具总结

vue-cli是一个官方发布vue.js项目脚手架,使用 VueCLI 可以快速搭建 vue 项目,以及对应的 webpack 配置。cli 是 Command-Line Interface, 翻译为命令行界面, 但是俗称脚手架。主要作用:目录结构、本地调试、代码部署、热加载、单元测试。

2024-01-29 09:20:23 514

原创 Web网页生成桌面应用

网页生成桌面指的是将一个网页保存为桌面应用程序的形式,使得用户可以在桌面上直接打开该网页,而不必通过浏览器打开。这种桌面应用程序一般具有独立的窗口、菜单、工具栏等界面元素,能够提供更加方便快捷的使用体验。实现网页生成桌面的方法有很多种,下面简单介绍几种常见的方法。

2024-01-24 14:57:49 687

转载 API接口安全管控机制

前言:直接把API暴露到互联网上给外部系统是存在安全风险的,对外的api接口往往对安全性有严格要求。像很多手机银行、第三方API接口、政务系统等大量的业务场景,通过API对外提供服务。这种情况大部分都暴露在互联网,存在较大的安全隐患。希望能在合规、管理、技术之间架起桥梁,成为一个数据安全的“翻译者”。

2024-01-02 13:52:56 169

原创 大数据技术16:数据湖和湖仓一体

近几年大数据概念很多,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又开始流行湖仓一体。互联网公司拼命造高大上概念来忽略小白买单的能力还是可以的。

2023-12-27 14:43:01 1050

原创 大数据技术15:大数据常见术语汇总

大数据的出现带来了许多新的术语,但这些术语往往比较难以理解。因此,通过本文整理了大数据开发工程师经常会接触到的名词和概念,了解这些专有名词对于数据研发和数据分析时的人员协作及研发都有很高的作用。

2023-12-18 19:52:29 1073

原创 大数据技术14:FlinkCDC数据变更捕获

CDC 的全称是 Change Data Capture ,在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为 CDC。目前通常描述的 CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。用于备份,容灾;一个数据源分发给多个下游系统;面向数据仓库 / 数据湖的 ETL 数据集成,是非常重要的数据源。离线调度查询作业,批处理。把一张表同步到其他系统,每次通过查询去获取表中最新的数据;无法保障数据一致性,查的过程中有可能数据已经发生了多次变更;

2023-12-16 02:17:19 509

原创 大数据技术13:HBase分布式列式数据库

2007年Powerset的工作人员,通过google的论文开发出了BigTable的java版本,即HBASE。2008年HBASE贡献给了Apache。HBase需要依赖JDK环境。HBase 是一种类似于 Google’s Big Table 的数据模型,它是 Hadoop 生态系统的一部分,它将数据 储在 HDFS 上,客户端可以通过 HBase 实现对 HDFS 上数据的随机访问。

2023-12-14 11:24:10 805

原创 大数据技术12:Hive简介及核心概念

​Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。这样,熟悉数据库的数据分析师和工程师便可以无门槛地使用大数据进行数据分析和处理了,Hive出现后大大降低了Hadoop的使用难度,迅速得到开发者和企业的追捧。为每个数据库上创建一个目录,数据库中的表是该目录的子目录,表中的数据会以文 件的形式存储在对应的表目录下。始化,但不会生成所有的元数据信息表,只会初始化必要的一部分,在之后的使用中用到其余表时。

2023-12-14 11:24:06 1279

原创 大数据技术11:Hadoop 原理与运行机制

众所周知,Hadoop 作为一个开源分布式系统基础框架,主要包含两大核心组件:HDFS 分布式文件系统和 MapReduce 分布式并行计算框架,这两大核心组件是 Hadoop 进行大数据处理的基础和基石,此外,Hadoop 的重要组件还包括:Hadoop Common 和 YARN 框架。目前,Hadoop 主要由 Apache 软件基金会进行开发和维护。

2023-12-14 10:17:13 505

原创 大数据技术10:Flink从入门到精通

Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。截止目前2023年12月Flink最新版本为v1.18.0。Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。Apache Flink 功能强大,支持开发和运行多种不同种类的应用程序。

2023-12-11 12:50:58 502

原创 大数据技术9:最流行的Flink+StarRocks 实时数据分析

数据据仓库、数据湖、湖仓一体等一系列大数据理念的成熟和落地,已快速推动着各种数据资产的搭建。StarRocks 的愿景是希望帮助客户,能够实现极速统一 OLAP 分析的技术架构,StarRocks极致的性能已经深入人心。全面支持了向量化引擎,CBO 技术,智能物化视图等等一揽子技术。使得 StarRocks 可以完成亚秒级极速 OLAP 分析,保证数据分析应用最后一公里的极速响应。

2023-12-11 00:14:18 209

原创 大数据技术8:StarRocks极速全场景MPP数据库

StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用、高可靠、易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。

2023-12-10 20:58:24 1517

原创 大数据技术7:基于StarRocks统一OALP实时数仓

前言: StarRocks 的熟悉程度可能不及 ClickHouse或者是远不及 ClickHouse 。但是大家可能听说过 Doris ,而 StarRocks 实际上原名叫做 Doris DB ,他相当于是一个加强版的也就是一个 Doris+ ,也就是说 Doris 所有的功能 StarRocks 都是有的,但是 StarRocks 有的这种加速的功能 Doris 目前是没有的。我们可以基于 Apache Doris 统一 OLAP 技术栈,并满足庞大数据体量下的实时分析与极速查询。

2023-12-10 16:27:31 443

原创 大数据技术6:大数据技术栈

大数据相关的技术名词特别多,这些技术栈之间的关系是什么,对初学者来说很难找到抓手。我一开始从后端转大数据的时候有点懵逼,整体接触了一遍之后才把大数据技术栈给弄明白了。

2023-12-09 17:39:58 498

原创 大数据技术5:OLAP引擎对比分析

数据仓库建设。初级的理解就是建表,将业务数据、日志数据、消息队列数据等,通过各种调度任务写入到表里供OLAP引擎使用。但要想建好数仓也是一个复杂、庞大的工程,比如要考虑:数据清洗、数据建模(星型模型、雪花模型、宽表模型、主题、维度、指标)、数据时效性(实时、T+1)、延迟容错、机器资源等。

2023-12-09 13:53:18 551

原创 大数据技术4:Lambda和Kappa架构区别

Lambda架构通过批处理层和速度层的组合,兼顾了低延迟和复杂分析,但系统较复杂,存在数据冗余和延迟不一致问题。Kappa架构只通过流式系统实现所有处理,简化了架构,但历史数据分析相对复杂,需要流式系统保证精确一次语义。两者都有各自的优缺点,需要根据具体场景进行技术选型和设计权衡。

2023-12-08 12:30:50 2259

原创 大数据技术3:数据仓库的ETL和分层模型

数据仓库是一个面向主题的集成的相对稳定的反映历史变化(Time Variant)的数据集合,用于支持管理决策。数据仓库概念是 Inmon 于 1990 年提出并给出了完整的建设方法。随着互联网时代来临,数据量暴增,开始使用大数据工具来替代经典数仓中的传统工具。此时仅仅是工具的取代,架构上并没有根本的区别,可以把这个架构叫做离线大数据架构后来随着业务实时性要求的不断提高,人们开始在离线大数据架构基础上加了一个加速层,使用流处理技术直接完成那些实时性要求较高的指标计算,这便是 Lambda 架构。

2023-12-08 11:56:46 1685

原创 大数据技术2:大数据处理流程

为了能够让熟悉 SQL 的人员也能够进行数据的分析,查询分析框架应运而生,常用的有 Hive 、Spark SQL 、Flink SQL、 Pig、Phoenix 等。分布式文件系统完美地解决了海量数据存储的问题,但是一个优秀的数据存储系统需要同时考虑数据存 储和访问两方面的问题,比如你希望能够对数据进行随机访问,这是传统的关系型数据库所擅长的,但 却不是分布式文件系统所擅长的,那么有没有一种存储方案能够同时兼具分布式文件系统和关系型数据 库的优点,基于这种需求,就产生了 HBase、MongoDB。

2023-12-07 17:41:06 263

原创 大数据技术1:大数据发展简史

随着信息时代互联网技术爆炸式的发展,人们对于网络的依赖程度日渐加深,在业务中需要处理的数据量快速增加,逐渐飙升到了一个惊人的数量级。并且数据产生的速度随着采集与处理技术的更新仍在加快。数据量从兆字节(MB)、 吉字节 (GB) 的级别到现在的太字节 (TB)、柏字节(PB) 级别,数据量的变化促使数据管理系统(DBMS) 和数据仓库(DataWarehouse,DW)系统也在悄然地变化着。传统应用的数据系统架构设计时,应用直接访问数据库系统。当用户访问量增加时,数据库

2023-12-05 18:04:30 1352

原创 MVC、MVP、MVVM模式的区别

这些模式是依次进化而形成MVC—>MVP—>MVVM。在以前传统的开发模式当中即MVC模式,前端人员只负责Model(数据库)、 View(视图)和 Controller /Presenter/ViewModel(控制器) 当中的View(视图)部分,写好页面交由后端创建渲染模板并提供数据,随着MVVM模式的出现前端已经可以自己写业务逻辑以及渲染模板,后端只负责提供数据即可,前端所能做的事情越来越多。

2023-12-05 15:58:26 370

原创 一文读懂中间件

在码农的日常工作中, 经常会提到中间件,然而大家对中间件的理解并不一致,导致了一些不必要的分歧和误解。“中间件”一词被用来描述各种各样的软件产品,在不同文献中有着许多不同的中间件定义,包括操作系统(和/或网络)和应用程序之间的软件层,以及两个应用程序之间的“粘合剂”。它也被描述为一种重要的集成工具,或支持与分布式软件的模块化连接。一般而言中间件和框架的区别是,中间件是独立运行的用于处理某项专门业务的CS程序,会有配套的客户端和服务端,框架虽然也是处理某个专门业务的但是它不是独立程序,是寄宿在宿主程序进程内的

2023-12-05 14:58:58 843

原创 政府信息化与电子政务

电子政务实质上是对现有的、工业时代形成的政府形态的一种改造,即利用信息技术和其他相关技术,将其管理和服务职能进行集成,在网络上实现政府组织结构和工作流程优化重组, 超越时间、空间与部门分隔的制约,实现公务、政务、商务、事务的一体化管理与运行。

2023-12-05 12:26:04 133

原创 高级系统架构设计师之路

架构师 (Architect) 包含建筑师、设计师、创造 者、缔造者等含义,可以说,架构师是社会各领域的创造者和缔造者。架构设计师是系统或产品线的设计责任人,是一个负责理解和管理并最终确认和 评估非功能性系统需求(如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等), 给出开发规范,搭建系统实现的核心构架,对整个软件架构、关键构件和接口进行总体设计并 澄清关键技术细节的高级技术人员。在组织中的职位方面,架构设计师是项目中的技术领导,应该拥有进行技术决策的权威。优秀的架构设计师应知道他的优势和弱势。

2023-12-05 11:38:09 367

转载 慢SQL治理经验总结

慢SQL可能引起很严重的系统性能问题,影响系统可用性和稳定性,因此,及时发现和治理慢SQL是十分重要的。我们建了一套完整的慢SQL发现-分析-推动治理的机制,极大减少了由慢SQL引发的系统问题。同时,在db稳定性上,我们还额外关注数据库CPU使用情况、活跃会话数情况等,建立及时的风险预警和快恢机制,第一时间解决数据库风险。

2023-12-04 17:21:21 50

原创 NoSql非关系型数据库

Nosql = not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处理的,聚合模型主要分为:KV键值对,BSON,列族,图形,时序,向量等几种数据库结构。

2023-11-29 12:54:32 565

原创 主流数据库类型总结

随着互联网的高速发展,为了满足不同的应用场景,数据库的种类越来越多容易混淆,所以有必要在此总结一下。数据库根据数据结构可分为关系型数据库和非关系型数据库。非关系型数据库中根据应用场景又可分为键值(Key-Value)数据库、列存储数据库、面向文档数据库、图数据库、向量数据库、时序数据库搜索引擎数据库等。Nosql = not only sql,意即“不仅仅是sql”,NoSQL数据库泛指非关系型数据库

2023-11-29 12:26:22 583

原创 如何保证缓存和数据库的双写一致性?

数据库和缓存双写一致性问题是一道经典的面试题,最初解决方案是先更新数据库、再删除缓存,然而如果发生掉电情况,只执行了前一步操作,那么缓存和数据库就出现了不一致性的问题。为了解决这个问题,所以通常会采用延迟双删 + 消息队列来保证业务的完整执行和数据一致性问题

2023-11-29 10:51:24 450

转载 概念能够升华体系:拥抱DDD领域模型驱动设计

牛B的人物,早已经厌倦了中英文混杂,他们更进一步,使用中英文缩写,对普通人进行降维打击。更厉害的,造就新的名词,并科普出去。有几项技术,我从心底里鄙视和厌恶,但每次在技术方案中,都默默的把它们加进去,而且给足了它们分量。因为它们对于方案的成功与否,起着重要的概念性指导作用。它们就是中台、低代码,以及DDD。这三个不同领域中的技术,肩负着同样的责任,那就是往死里忽悠。这三个词,很伟大,它们有一个共同点,都是很容易说服非技术但能决策的人员,然后向下铺开,非常具有营销型,是职业经理人和CTO的最爱。

2023-11-09 09:39:42 65

原创 Spring循环依赖解决方案

循环依赖指的是两个或者多个bean之间相互依赖,形成一个闭环。直接表现为两个service层互相调用对方。一般场景是一个Bean A依赖Bean B,而Bean B也依赖Bean A.当然我们也可以添加更多的依赖层次,比如:有很多种方法来应对Spring的循环依赖。但考虑的第一件事就是重新设计你的bean,所以没有必要循环依赖:他们通常是可以提高设计的一种症状。但是,如果你在你的项目中确实是需要有循环依赖,那么你可以遵循一些这里提出的解决方法。痛快!SpringBoot终于禁掉了循环依赖。

2023-11-08 15:32:04 208

原创 SSO单点登录与OAuth2.0 区别

SSO是Single Sign On(单点登录)的缩写,OAuth是Open Authority(开放授权),这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。很多人会将其混为一谈,其实这两个还是有些区别的。

2023-11-06 17:45:53 451

原创 大型电商系统的订单设计

电商系统需要满足商品、订单、支付、会员、优惠券、秒杀、拼团、砍价、分销、积分等多种经营需求。其中订单模块是比较核心复杂的,需要架构师在上面下不少功夫。

2023-10-24 15:16:26 262

原创 千万级大型API网关设计

API网关 简单来说是一种主要工作在七层、专门用于 API 的管理和流量转发的基础设施,并拥有强大的扩展性。网关的角色是作为一个API架构,用来保护、增强和控制对于API服务的访问。它是一个处于应用程序或服务(提供REST API接口服务)之前的系统,用来管理授权、访问控制和流量限制等。这样REST API接口服务就被网关保护起来,对所有的调用者透明。因此,隐藏在API网关后面的业务系统就可以专注于创建和管理服务,无需关心这些策略性的请求。

2023-10-13 11:22:42 238

原创 如何成为系统架构师?

在软件开发领域,我们经常听到系统架构师这个职位,这是一个负责设计和实施复杂系统或产品的关键角色。他们的任务不仅仅是创建和维护系统的具体组件,而是考虑整个系统的整体架构。他们需要理解如何将不同的部分整合在一起,以满足特定的性能、安全性、效率、可靠性和可扩展性要求。早期的软件或许可以由几个天才程序员完成,比如求伯君一个人关在酒店里写出了WPS1.0。但进入大型软件时代后,单打独斗的英雄主义不复存在,需要团队配合。

2023-10-08 15:43:24 368

原创 千万级用户的大型网站,如何进行服务器压力预估?

假设这个网站预估的用户数是1000万,那么根据28法则,每天会来访问这个网站的用户占到20%,也就是200万用户每天会过来访问。通常假设平均每个用户每次过来会有30次的点击,那么总共就有6000万的点击(PV)。每天24小时,根据28法则,每天大部分用户最活跃的时间集中在(24小时 * 0.2)≈ 5小时内,而大部分用户指的是(6000万点击 * 0.8 ≈ 5000万点击)也就是说,在5小时内会有5000万点击进来。

2023-09-22 10:57:56 269

原创 MyBatisPlus实现多租户功能

SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。SaaS服务通常基于一套标准软件系统为成百上千的不同客户(又称为租户)提供服务。

2023-08-28 09:41:08 7063 7

原创 SaaS多租户系统架构设计

多租户技术是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。它是为共用的数据中心内如何以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍可保障客户的数据隔离。简单来说是一个单独的实例可以为多个组织服务。

2023-08-27 16:43:41 2528 1

原创 Jenkins安装配置

Jenkins是一款CICD(持续集成与持续交付)工具。Jenkins可以帮你在写完代码后,一键完成开发过程中的一系列自动化部署的工作。Jenkins 2.346.1 版本支持 jdk1.8 和 jdk11,最后一版支持jdk1.8的版本。安装Jenkins前必须先安装JDK,最新版的Jenkins需要jdk11以上,这里我安装jenkins-2.346.1+jdk8,同时安装好git和maven做好配置,方便后期使用。

2023-05-28 18:52:06 8316 1

原创 Linux安装Redis6.0版本教程

采用Redis源码压缩包解压编译的安装方式。因为centos7.x的gcc版本还是4.8.5,而GCC编译指定的版本是需要5.3以上。

2023-05-19 12:42:32 869

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除