- 博客(176)
- 资源 (4)
- 收藏
- 关注
原创 【中间件】DAL中间件intro
三层的软件架构通常分为:表示层,业务逻辑层和数据访问层。 按照单一职责,数据访问层应该是唯一可以和数据库进行交互的部分。数据访问层需要具备的功能包括: 数据的CRUD、 事务transaction的支持【保证数据一致性】数据库作为一种软件产品也是有很多的,为了统一不同厂商的数据库访问方式,主流的开发语言一般都定义了各自的数据库访问规范。 比如java的就是JDBC规范【定义了数据库操作接口和类,数据库厂商为了获得该类语言的用户,就会去实现这些接口,作为各自的JDBC驱动】 ----- 这样用户就
2023-11-29 21:18:12 1535
原创 【中间件】配置中心中间件intro
配置分离是一个基本的过程,把开关写在代码里面是非常低级的行为。we接触SpringBoot的时候,经常将配置写在yml文件中,但是文件打包发布之后,你如果再修改yml内容,那么就需要再次部署。 可以直接在yml中利用${XXX}的方式将参数设置为变量进行管理,不管是在K8s中配置还是在Potainer中配置都比较快捷, 这就是配置管理的重要性。配置Configuration是独立于程序的变量: 首先就是配置独立程序,不同的配置程序会有不同的行为。 常见的配置包括: DB Connection、 Th
2023-11-27 22:09:36 1059
原创 【中间件】消息队列中间件intro
为什么要使用MQ呢,首先就是考虑企业中的应用场景,比如`实时索引更新`、 `异步化流程`.... 这些使用MQ就可以轻易解决。 MQ最主要的功能就是异步解耦、流量削峰... - 异步: 消息生产者将消息投递到消息队列中,因为可靠性由MQ保证,所以生产者可以继续处理剩余的业务逻辑,提升可靠性,比如注册成功之后发送通知短信...- 松耦合: 生产者和消费者不需要知道对方的存在,只需要事先定义好消息的格式,不需要知道对方的实现细节,相比RPC调用强耦合(被调用方异常或者响应慢可能产生回压,甚至雪崩),MQ
2023-11-26 22:05:26 1759
原创 【中间件】服务化中间件理论intro
服务化(微服务)是分布式架构下后台的趋势,应对更大的流量和复杂的场景,后台服务化,而服务化带来的一些问题,也就是采用相关中间件来解决,所以Spring cloud是服务化的解决方案,和原本的开发框架SpringBoot没有什么冲突。服务化也只是一种措施,流量小的情况下大可不必微服务直接单体架构搞定。所以不管是微服务、还是云原生都是架构演变过程带来的新的解决方案,而深入到每一个节点的开发,还是和传统java开发一样。学习新的方案同时夯实开发基础以不变应万变。
2023-11-22 16:35:17 1100
原创 【中间件】中间件的宏观探讨漫谈
中间件 Middleware,字面上看就是起中间作用的构件。早期的概念就是再操作系统的基础上,为其他应用软件提供服务的==基础软件==, 就像一种软件胶水连接系统以及应用服务。 比如中间件简化应用间的通信方式【可以不用再调用复杂系统函数即可数据传输】
2023-11-20 17:54:08 986
原创 【cfeng-work】架构演进和漫谈
互联网的技术总是在不断变迁的,技术架构也是在不断变化。架构是个抽象的可大可小的一个概念,比如机器是单点还是集群,对于单体我们这个产品的模块如何划分,是分层还是其他的模式......我们其实最容易接触的就是单体架构。这里的“单体” 说的是机器,相对单体,那么就有“分布式的架构”, 所以这里就是我们整体的机器的搭建的一种选择,流量大或小?流量小自然没必要去用分布式,因为分布式要考虑的问题也更多并且成本也更高。
2023-11-13 20:39:45 531
原创 【cfengDB】自己实现数据库第1节-----数据管理层的实现(log和db)
cfengDB中最基础的就是data manager,从字面意思理解就是直接管理数据库Data文件和日志文件。- 管理数据文件: 分页管理DB文件,并进行缓存【缓存不管什么地方都有,加快数据访问必须】- 管理日志文件: 保证当db出错时能够进行故障恢复DM就是对于文件系统的抽象,向下直接读写db文件,向上提供数据封装, 将文件抽象为DataItem供上层使用
2023-07-20 15:26:26 389
原创 【cfengDB】自己实现数据库第0节 ---整体介绍及事务管理层实现
cfengDB中每一个事务都会有一个TID进行表示,事务ID从1开始自增,不重复;特殊规定 ----- TID为0表示无事务noneTransaction,代表事务不申请事务直接执行,该类型事务状态永远都是committed0 running: 正在执行,还没有结束1 commited: 已提交3 rollback: 撤销回滚。
2023-07-15 21:44:40 1699
原创 【cfeng work】什么是SaaS? SaaS详细介绍
WorkProj------本文introduce SaaS的相关内容------> 昨天cfeng已经介绍过云原生了,其实就是应用在设计上就要围绕Cloud,代表技术就是容器化和微服务、DevOps和区别于传统瀑布模型的持续更新设计; 同时cfeng的work代表性除了云原生之外,还包含的另一个特点就是==SaaS架构==>> 本文将介绍SaaS的相关内容和cfeng结合work项目对于SaaS的理解云☁是现在很流行的概念,其中云计算是通过网络提供计算资
2023-06-03 21:44:59 792
原创 【cfeng work】什么是云原生 Cloud Native
> 随着技术的迭代,从最初的物理机---> 虚拟机,从单机 ---> 分布式微服务, 现在的热门概念就是云☁(cloud), 云原生,云计算,云服务,云主机,云......, cfeng在work接触的全部就是云☁,所以借此分享一下个人对于云原生的理解>> Cloud Native,服务围绕Cloud, 而程序设计之初就Native是考虑云, 充分发挥云平台的弹性和分布式优势以前企业的服务基本都是直接部署在公司的物理机上面,单机架构,所以性能不好,一个应用可能就一台服务器, 随着云计算的普及, 应用
2023-06-02 21:14:39 2514 8
原创 【cfeng work】WorkProj中Stream流的应用详细介绍
> 在关系型数据库中处理数据还是很easy的,使用group by , order by等关键字可以方便查出各种数据>> 但是很多场景下数据不是在数据库中处理, 而是直接拎到内存中处理, 这个时候Stream就可以发挥巨大作用【相较于传统的for遍历】比如java的dynamicSqlBuilder, 动态SQL查询出动态数据库表中的数据【所有都是动态的】, 这里的返回值就是List要对List进行处理, 通过St
2023-06-01 21:23:03 530
原创 【Cfeng Work】 Open API的intro和 梳理
Open API 就是开放API,OpenAPI是服务型web项目的一种应用,网站(应用)服务商将自己网站的服务封装为一系列API 开放Open出去, 供**第三方开发者**使用, OpenAPI 也就是开放网站部分服务API提供OpenAPI的平台(网站等)就是开放平台> 开放平台: 第一种为技术型开放,比如baidu等将需求开放给第三方开发者, 第二种是软件系统(应用)公开 API或者 函数function,使外部程序可以 使用软件系统的资源,增加功能,而不需要更改该软件系统的代码简单理解,
2023-01-09 00:21:43 421 1
原创 【cfeng-Work】work项目理解
work 项目, bit-worker属于RPA产品,机器人流程自动化,根据预先设计的规则(流程)自动完成(虚拟机器人)大量重复的工作,提升工作效率,整体分为设计器、控制台、机器人几个部分; 设计器主要就是进行流程的开发设计,流程Process和活动Activity定义的流程文件
2022-12-29 17:24:39 1098
原创 【计算机网络】计算机网络复习总结 ----- 链路层
计算机网络本文为计算机网络相关考试的书本内容详细总结物理层的物理链路Link是一条点到点的物理线路,中间没有交换结点, 一条物理链路只是一条物理路径的组成部分数据链路 data Link: 除了物理的链路之外,还需要有通信协议控制物理链路的数据传输,如果把实现这些协议的硬件和软件加到俩路上,就构成数据链路数据链路层的主要功能: 将不可靠的物理链路转为可靠的数据链路,数据链路(逻辑链路) = 物理链路 + 数据链路层的通信协议一般的适配器都是包含了数据链路层和物理层的功能链路层的主要设备就是二层交换机、网桥,
2022-12-04 22:41:12 2026 2
原创 【计算机网络】计算机网络复习总结 ------ 物理层
计算机网络本文为计算机网络相关考试的书本内容详细总结物理层主要考虑理想信道和非理想信道数据最大传输速率, 相关的奈奎斯特定理,香农定理, 各种传输介质 【物理层常见的网络硬件: 中继器、 集线器】一个通信系统 : 源系统, 传输系统, 目的系统(移动通信)物理层的主要功能: 确定物理接口的机械、电气、功能和规程特性,透明地传送bit流 , 考虑的是怎样才能在连接各种计算机地传输媒体上传输bit流,而具体地传输媒体不是重点相关概念术语信息客观事务属性和相互关系特性的表征, 就是事务、特征等的表述信息的
2022-12-04 16:04:37 834
原创 【计算机网络】计算机网络复习总结 ----- 计算机网络概述
计算机网络本文为计算机网络相关考试的书本内容详细总结在正式介绍网络各层次结构,先对网络进行一个概括性描述:广义理解: 计算机网络就是计算机通信网络: 用通信链路将多个计算机连接起来的计算机系统的集合,以传输信息为主要目的资源共享理解: 计算机网络就是资源共享系统: 分布在不同的地理位置上的具有自治功能的多台计算机、终端和附属设备在物理设备上相连,按照网络协议通信,以共享资源和协同计算为目标的系统用户透明理解: 计算机网络是一个分布式系统: 利用网络操作系统为用户提供网络资源管理服务,整个网络像一个计算机系统
2022-12-03 22:06:52 705
原创 【MySQL】 MySQL亿级数据、主从架构,Sharding分片
数据库Mysql,要正确模拟线上环境,需要给数据库填充亿级数据,传统插入Insert插入数据过慢使用Java等语言连接数据库操作MySQL,除了语言本身损耗,还包括语言和数据库连接的损耗;所以要给数据库增大数据量,不推荐使用语言连接的方式除了第三方工具,这里给出3种解决方案来填充亿级数据
2022-11-30 15:37:33 3524
原创 【MySQL】MySQL基础、详细总结
DB: 数据的集合、DBMS管理数据的集合DBMS: 操作和管理数据的软件DBS:软件、数据库、DBA的集合DBA: 全面管理和控制DBS数据库基础概念:元组: 每一行(记录)就是一个元组码: 唯一标识实体的属性,对应表中的列候选码: 所有可以唯一标识实体的属性(属性组) — 属性组其子集不能唯一标识主码: 候选码中选取一个属性(组)作为主码, 唯一标识外码: 当前关系中一个属性是两外一个关系的主码,该属性为外码主属性: 候选码中出现过的属性非主属性: 除开主属性之外的属性。
2022-11-16 23:21:41 730
原创 【微服务架构】基础的微服务架构模板、fianceCampus项目
OfferCampus前期构建简单介绍: 搭建完整的模板Spring Cloud项目基于SpringCloud搭建模板项目 ----- financeCampus实例本篇文章只是简单介绍几个cfeng认为重要的点,大部分简略带过 – 该项目Cfeng也没有完全深入做,只是以此来分析创建一个微服务项目所需要做的工作,像核心的业务逻辑则是每个项目具体分析该项目如果有机会会深入,但是目前来看技术含量不大,但是代码的逻辑还是庞大,因此这里只是简单引入一下项目,了解微服务项目架构的基本的技术而offerCampus
2022-11-01 10:43:27 903
原创 【SpringCloud】项目准备 --- Spring Cloud Netfix、Alibaba使用介绍
集群: 将几台机器统一部署统一应用程序,实现统一业务,组成集群【比如redis集群、rabbitMQ集群、Tomcat集群) 集群可以是分布式的,也可以不是分布式的(redis的哨兵一样一台机器上开多个端口运行不同的哨兵是一样的)随着大数据量和三高要求,现在的应用大多会采用分布式架构,采用微服务的思想进行应用的开发`RPC`: remote process call 进程间通信方式之一,通常是跨机器的(通过网络)典型的RPC框架就是Dubbo --- 非常纯粹的进行服务的远程调用服务之
2022-10-15 12:17:30 519
原创 【Dubbo】Dubbo进行服务远程调用、Cfeng不使用Dubbo构建微服务缘由
Cfeng 个人扩展的项目很多,常见的单机项目各种系统就借助脚手架和之前的代码迅速就可以建立, 在这个微服务项目之前做的是MinRPC,该微服务项目的目的是为一方面构建一套模板代码,另一方面是为了方便自己的使用; 除Offer Campus项目,个人维护的项目还有Cfeng.net【传统单机项目,但使用的MCVM模式】, Cfeng.net短暂上线过一段时间,目前在进行功能完善(因为是一个人,所以进度稍慢)
2022-10-05 21:28:21 890
原创 【java网络编程】TCP三次握手、四次挥手,常见Socket通信BIO
java.io基于流模型实现,提供File抽象,输入输出流等IO功能,交互方式为同步阻塞(读取时不能干其他事情并且必须等待读取完成close),读取输入流或者写入输出流动作完成close之前,**线程就会一直阻塞**, 代码简单,但是IO效率低下,传统的inputstream,outputstreamjava.net 下面提供网络API,也就是网络编程,提供了Socket接口等,基于TCP/IP协议封装,Socket、ServerSocket、HttpURLConnection也是**同步阻塞IO,因为
2022-09-26 21:38:15 2154
原创 【分布式】分布式解决方案Redisson,远远不止redis
rabbitMQ是严格FIFO的,也就是按照队列的顺序先进先出,当然一般情况下性能都很优秀,但是对于一些特殊的场景可能出现一些问题: 延迟队列中的消息TTL不同这个时候rabbitMQ给出的结果还是按照入队的顺序,并不会根据TTL,这显然是不正确的,为了解决这种缺陷,可以考虑使用Redisson的延迟队列
2022-09-23 16:38:39 2936 1
原创 【分布式】基于Zookeeper实现分布式锁、秒杀问题复盘
分布式架构项目 --- 系统拆分、独立部署、服务模块解耦;随之而来的分布式事务、数据一致性、分布式架构下的并发安全问题; 除了可以利用数据库级别的乐观、悲观锁;以及借助redis原子性SETNX实现分布式锁,还可以利用注册中心Zookeeper实现分布式锁Zookeeper的功能特性:- 顺序一致性: 从同一个客户端发起的请求,最终严格按照顺序应用到ZooKeeper- 原子性: 所有的事务请求结果在整个集群所有机器上的应用情况一致,整个集群中所有机器的状态一致- 单一系统映像:
2022-09-21 22:13:14 1323 5
原创 【分布式】分布式锁解决方案介绍、DBMS级别乐观、悲观、redis的SETNX实现分布式锁
当前高并发、大数据量的时代,企业级应用大部分都是采用集群和分布式的方式进行部署,将 业务高度集中的传统企业级应用按照业务拆分为多个子系统,独立部署, 为了更好应对高并发【千万级流量,需要负载均衡,一个子系统部署多个实例(集群),均衡分摊前端的请求,应用、服务、文件都是分开的】, 但是高并发情况下的数据不一致问题就需要解决, 解决方案就是分布式锁🔒
2022-09-20 22:30:18 669
原创 【分布式】Rabbitmq死信队列模型、实战场景---订单延迟30min支付处理
延时、延迟处理指定的业务逻辑 ---- 在实际生产中非常常见, 比如商城订单完成之后,用户如果一直没有评价,5天后自动好评,会员到期前15天、某个业务到期前X天提示 【 ECS最近给我提示麻了】, 延迟处理的业务逻辑, 之前就是定时器扫表, 但是这样子性能太低了,数据库压力大,RabbitMQ的延迟队列就可以解决
2022-09-18 22:28:43 2169
原创 【分布式】SpirngBoot 整合RabbitMQ、Exchagne模式、确认消费
RabbitMQ在模块解耦,接口限流、异步通信等方面发挥重要作用,在成熟的RabbitMQ之前,项目一般采用Spring的事件驱动模型来进行异步通信缓存穿透 除了缓存null之外 还可以在之前加上布隆过滤器,也就是hash到一个大bitmap,查询先过滤看是否存在key,存在再查询缓存并且之前的Cache只是表面的知识,虽然加上分布式🔒可以抗住高并发,但是一旦缓存失效,需要准备高可用的解决方案, 并且必须使用mq限流,因为应用层容器Tomcagt的吞吐量有限,必须保证同时到达的流量不查过Tomca
2022-09-17 18:07:04 617
原创 【分布式】分布式中间件RabbitMQ、 cache注解
RabbitMQ作为分布式消息中间件,**实现了高级消息队列协议 AMQP,(advanced message queuing protocol)** ,执行单节点或者多节点集群的部署,满足目前高并发、大规模和高可用的要求
2022-09-15 15:10:24 903
原创 【高性能】Web性能压力测试JMeter、测试秒杀Red
高性能问题:- 秒杀系统最多可以抗住多大的流量不出现异常?- 连续100小时以上的疲劳测试是否会让系统内存无法下降,GC无法回收内存,CPU不降低?- 高并发压力下,应用程序哪里消耗资源最多,需要优化?- 针对协议的测试: 比如之前的聊天服务,HTTP轮询 和 WebSocket谁更消耗性能?相差多少?- 单台压力机无法生成更大压力,如何增加压力机?
2022-09-14 12:13:23 1515
原创 【分布式】红包秒杀系统、高并发安全分布式锁
红包系统作为一个非常广泛的服务,可以切实提高网站的收益,吸引流量,这里Cfeng将分享如何设计一款抢红包系统本文会从最开始的业务流程、业务流程分析、到数据库表和 红包分发算法、 JMeter高并发测试、高并发状态下使用分布式锁进行优化
2022-09-13 18:13:09 2521 3
原创 【分布式】分布式系统、Redis中间件 、Cache穿透、击穿、雪崩
分布式系统强大, system内部至少由多台计算机组成(性能更大), 一个统一的“机器中心”, 由**一组**独立的计算机组成【区别与之前的一台】- 但是,用户感知 该机器中心为一个单个系统,不能感知到计算机集群的存在
2022-09-12 21:20:32 617
原创 【云服务器】阿里云部署项目、攻击CPU解决方案
部署运维: 将web项目部署到阿里云服务器,刚部署就被攻击了,CPU爆满,服务器进入不了,最终初始化; 给出jar环境部署全套
2022-09-09 23:07:29 1295
原创 【性能测试JMH】SpringBoot结合 JMH进行性能测试 调优
可以设置测试状态对象的多线程的共享程度Scope.Benchmark: 基准状态范围, 基准作用域:相同类型的所有实例在所有工作线程之间共享;---- Spring多为无状态单例Bean,可以直接所有的线程共享此状态上面的对象的SetUp方法和TearDown方法都是一个工作线程执行,每个级别一次,没有其他线程可以操作状态对象。
2022-09-03 18:26:50 1411
原创 【web开发】spring security配合验证码,java获取地理位置(绘制百度地图)、天气
SpringBoot中配合security使用kaptcha验证码,使用百度地图进行定位,获取天气信息,音乐播放的warning
2022-08-23 01:48:30 1305
原创 【Web项目实战】Cfeng.net基于MinIO的文件服务和支持markdown编辑的笔记服务
文件存储需要使用递归的思路,也就是每一级文件都有父级结点,文件夹结点都有子级结点,而note模块的开发就是中规中矩,按序操作即可,只是说在存储的时候要记得使用LOB对象存储服务实现思路:云盘模块的文件存储基于Minio对象存储,而文件、笔记实体类基于本地Mysql存储首先需要使用minio服务,引入之前封装的starter
2022-08-20 23:29:57 740
原创 【Web项目实战】基于STOMP的聊天室【高仿QQ界面,世界频道,私聊,头像】
SpringBoot基于STOMP协议聊天服务项目实战相关的经验 ----- 小欢Chat基于安全框架先完成登录认证的功能当然还需要注册用户,聊天用户是有头像的,需要使用MultiPart业务进行图片的上传Cfeng从一开始就不单单以聊天业务为核心,聊天业务只是很小的业务模块,后面就将其他的业务扩展到这里,所以先简单设计一个Main页面,frame供后期扩展这里Cfeng利用Jquery 在点击进入聊天 【当前的业务模块】时就会触发建立websocket长连接,传输STOMP帧当然用户也是支持修改信息的
2022-08-10 21:15:26 978
原创 【Boot开发】Git工具详解,服务器搭建java和mysql环境由systemctl管理
SpringBoot,git的详解,服务器搭建java和mysql环境运行项目
2022-08-02 11:21:44 392 1
原创 【开发技术】2万字详细介绍Docker 和 web项目的部署监控,docker部署,拉取kafana,prometheus镜像监控
SpringBootSpringBoot开发技术 — 现代化部署与运维、docker、运行监控,Grafana程序编写了完备的测试用例之后,软件开发生命周期到达最终阶段— 部署运维;随着开发和项目交付模式的改变,现代的开发讲究高效敏捷,方便快捷部署并且稳定运行十分重要 【依赖项的变化之类】之前数据库直接使用的Windows Redis,但是实际场景中使用的是Linux版本,这里要进行远程连接,需要进行相关的配置修改bind127.0.0.0 为 bind 0.0.0.0 ----> 允许所有IP
2022-07-31 00:34:39 1404
原创 【开发技术】springboot自动化测试 【单元测试、集成测试】
SpringBootSpringBoot开发技术 — 自动化测试除了安全之外,项目开发的一个重要的一环就是自动化测试,自动化测试主要是使用几个注解比如@springBootTest,引入Test starter依赖; 这样就可以自动启动获取容器中对象自动化测试是一种软件测试技术,使用特殊的自动化测试工具执行测试用例。手工测试是手动输入的方式执行测试,自动化测试可以减少软件开发阶段运行测试用例的数量,一般是自动化测试与手动测试相结合; 这里主要分享Junit单元测试,Hamcrest断言,进行分层级测试和测试
2022-07-27 17:42:44 4360
原创 【开发技术】2万字分析shiro、spring security两大安全框架,spring session,OAuth2 入门级教程
SpringBootSpringBoot开发技术 — 应用程序安全,Spring security,ShiroWeb开发中还有一个要点就是应用程序的安全性,比如一般通过登录验证保护用户的个人资源,会员制度将会员和普通用户享用的功能区分,管理系统要进行角色进行相关的权限的管理,安全管理框架: Spring Security和Shiro,Shiro为轻量级,主要就是一个验证器RBAC role based access control 访问控制基于角色,安全管理的实现思路就是前台通过相关的标签进行标记,后台通过
2022-07-25 03:42:54 3995 1
WEB前端综合网站 - 仿慕课网(源码 + ReadME文档)
2022-12-01
西北工业大学计算机学院信号与系统实验报告全套
2022-11-20
西北工业大学 计算机学院 数字逻辑实验报告四
2022-11-20
西工大计算机学院计算机操作系统实验报告 运行用户态程序
2022-11-20
西北工业大学计算机学院计算机操作系统实验报告一 创建GeekOS
2022-11-20
团队调度软件----java练手项目源码.rar
2021-10-21
团队调度软件-java练手项目源码.rar
2021-10-21
小欢聊天室源码--提高coding能力.rar
2021-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人