- 博客(147)
- 收藏
- 关注
原创 电商---part02 项目环境准备
SpringCloudAlibaba GitHub地址:https://github.com/alibaba/spring-cloud-alibaba/中文网站对应的地址:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md注册中心:Nacos配置中心:Nacos负载均衡:Ribbon声明式服务调用:OpenFegin服务容错:Sentinel网关服务:Gateway链路监控:Sleuth。
2025-04-04 20:04:42
795
原创 电商---part01 项目整体
单体架构应该是最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。
2025-03-31 20:59:16
923
原创 kubernetes——part3-5 核心概念 Service
使用kubernetes集群运行工作负载时,由于Pod经常处于用后即焚状态,Pod经常被重新生成,因此Pod对应的IP地址也会经常变化,导致无法直接访问Pod提供的服务,Kubernetes中使用了Service来解决这一问题,即在Pod前面使用Service对Pod进行代理,无论Pod怎样变化 ,只要有Label,就可以让Service能够联系上Pod,把PodIP地址添加到Service对应的端点列表(Endpoints)实现对Pod IP跟踪,进而实现通过Service访问Pod目的。
2025-03-09 11:20:05
731
原创 云原生实战
云平台是一种基于互联网的服务提供模式,它允许用户通过网络访问和使用计算资源、存储空间、数据库、应用程序等各种服务,而无需拥有或直接管理这些资源的实际物理设备。简单来说,想象有一个超级大型的计算机,但并不需要亲自购买、维护或者放置它。相反,只需通过互联网连接到这台计算机,像访问一个网站一样,就可以使用它提供的各种功能和服务。这就是云平台的核心理念。
2025-02-06 00:04:46
764
原创 React
需求,组件0 改变了数据,其它组件也想获得改变后的数据,如图所示这种多个组件之间要共享状态数据,useState 就不够用了,useContext 也不好用了能够和 react 配合使用的状态管理库有MobXRedux其中 Redux API非常难以使用,这里选择了更加符合人类习惯的 MobX,它虽然采用了面向对象的语法,但也能和函数式的代码很好地结合。
2025-02-02 22:46:41
929
原创 如何快速上手二手项目
首先要保证资料齐全下载代码,并运行,评估注释如何,查看代码规范代码不一定能完整看出项目打开对应文档文档不明了,直接打开可以访问的地方,看看需求最好还是运行一下。
2025-01-12 18:50:55
171
原创 mybatis
Mybatis简介MyBatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到GithubiBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Acces
2025-01-07 21:14:29
652
原创 Kubernetes——part4-3 基于Ingress Nginx实现灰度发布系统
工作中,会经常对应用进行升级发版,在互联网公司尤为频繁,主要是为了满足业务的快速发展。经常用到的发布方式有滚动更新、蓝绿发布、灰度发布。
2025-01-05 22:40:04
967
原创 Redis核心技术与实战
首先理解一点,把Redis称为KV数据库,键值对数据库,那就可以把Redis内部的存储视为存在着一个巨大的Map,对Map的操作无非就是get和put,然后通过key操作这个key所对应的value,而这个value的类型可以多种多样,也就是Redis提供的那些数据结构,比如字符串(String)、哈希(Hash)等等。如果是集群,还容易丢失数据。这些年李老师的经历,我发现,很多技术人都有一个误区,那就是,只关注零散的技术点,没有建立起一套完整的知识框架,缺乏系统观,但是系统观其实是至关重要的。
2024-12-21 22:41:23
1568
原创 MySQL性能调优与架构设计
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。
2024-12-05 23:45:56
688
原创 Java算法(高)
回溯算法也叫试探法,是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。在探路的过程中一般使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。从前面对回溯算法的说明可以看到,回溯的本质是穷举,穷举所有可能,然后选出想要的答案,只是在穷举的过程中可以根据一些条件避免无效的遍历,这个避免的过程也叫剪枝。所以回溯法并不是什么很高效的算法,那么既然回溯法并不高效为什么还要用呢?因为一些问题只能靠暴力搜索,没有更高效的解法。
2024-11-24 15:13:22
1028
原创 JAVA 算法 (中)
仔细分析题目,需要找的是数组排序后的第 k 个最大的元素,所以最简单的办法,首先把数组排序后,返回第 k 个最大的元素就行了。这道题是面试的高频考题,同时也是基础排序算法的应用。
2024-11-24 00:34:08
336
原创 tcpdump抓包 & wireShark
TCPdump,全称dump the traffic on anetwork,是一个运行在linux平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具。1、在Linux平台将网络中传输的数据包全部捕获过来进行分析2、支持网络层、传输层协议等协议捕获过滤3、数据发送和接收的主机、网卡和端口等各种过滤捕获数据规则4、提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息5、结合wireshark工具分析捕获的报文要灵活使用 tcpdump 工具必须要有两个必备的知识基础:第一、
2024-11-23 01:21:39
1311
原创 RabbitMQ学习笔记
AMQP,即(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。简单概述:RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用,高可扩性,易用性等特征AMQP全称:Advanced Message Queuing Protocol(高级消息队列协议)。
2024-10-11 00:22:46
1145
原创 Shell编程
普通变量: 作用域是当前shell(当前的解释器)1.基本语法(1)定义变量:变量=值(2)撤销变量:unset 变量(3)声明静态变量:readonly变量,注意:不能unset2.变量定义规则(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。(2)等号两侧不能有空格(3)变量的值如果有空格,需要使用双引号或单引号括起来。3.案例实操(1)定义变量A5(2)给变量A重新赋值8(3)撤销变量A(4)声明静态的变量B=2,不能unset2。
2024-09-08 12:14:43
679
原创 Linux操作系统
定义:操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序 作用:是把计算机系统中对硬件设备的操作封装起来,供应用软件调用,也是提供一个让用户与系统交互的操作界面。 在我们的常见的操作系统中有 1、安卓与苹果 1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑。
2024-09-08 12:00:07
2986
原创 常见痛点规避 与 Bug处理
业务和产品的线上质量、是研发团队的生命线,也是支撑业务快速是错,小步跑的前置条件。故障等级定义,不同的业务形态,不同的公司团队,有不一样的划分标准,下表列举了一般常见的维度和标准线上故障等级标准是否回滚【P0】致命问题安全:影响线上生产核心数据安全【1】核心数据定义(丢失、泄漏);功能:造成系统崩溃、死机,主要功能或重要功能完全不能正常使用;资损:造成资损超过>5W;体验:(1)有效客诉超过>30人或客诉>50人;(2)由于系统问题导致、不能开展业务的核心企业,超过3家影响范围是。
2024-08-25 12:25:23
1217
原创 缓存之Tair
在Tair出现之前的很长一段时间里,像redis、memcache这些知名NoSql数据库是不支持分布式的,在这样的背景下,由淘宝网自主开发并在2010.6开源的一个高性能、高扩展、高可靠分布式缓存,类似map的key/value结构,在淘宝、天猫等各个应用中广泛应用。 Tair官网:https://www.oschina.net/p/tair gitee地址:https://gitee.com/mirrors/Tair。
2024-08-24 11:31:25
1223
原创 DockerFile
Dockerfile是一种能够被Docker程序解释的剧本。Dockerfile由一条一条的指令组成,并且有自己的书写格式和支持的命令。当我们需要在容器镜像中指定自己额外的需求时,只需在Dockerfile上添加或修改指令,然后通过docker build生成我们自定义的容器镜像(image)。
2024-08-18 21:12:11
875
原创 Spring 扩展点
它有一个优势, 注意它有一个importingClassMetadata参数, 这个参数可以获取@Import注解所在类的其他注解信息, 比如@MapperScan根据包创建beandefinition。2.ImportBeanDefinitionRegistrar不是一个bean, 没有bean的生命周期, 没有依赖注入功能。ImportBeanDefinitionRegistrar不是一个bean, 没有bean的生命周期, 没有依赖注入功能。
2024-08-11 17:38:21
497
原创 java日志框架
Loggers:被称为记录器,应用程序通过获取Logger对象,调用其API来来发布日志信息。Logger通常时应用程序访问日志系统的入口程序。Appenders:也被称为Handlers,每个Logger都会关联一组Handlers,Logger会将日志交给关联Handlers处理,由Handlers负责将日志做记录。Handlers在此是一个抽象,其具体的实现决定了日志记录的位置可以是控制台、文件、网络上的其他日志服务或操作系统日志等。
2024-08-10 00:25:07
824
1
原创 分布式ID
emsp;(Universally Unique Identifier),通用唯一识别码。UUID是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算生成的。UUID 是由一组32位数的16进制数字所构成,以连字号分隔的五组来显示,形式为 8-4-4-4-12,总共有 36个字符(即三十二个英数字母和四个连字号)。
2024-08-06 00:54:34
697
原创 Kubernetes
K8S 是Kubernetes的全称,源于希腊语,意为“舵手”或“飞行员”,官方称其是:用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。kubectl官方使用文档:https://kubernetes.io/zh/docs/reference/kubectl/overview/同一命名空间内的资源名称要唯一,命名空间是用来隔离资源的,不隔离网络。K8S官网文档:https://kubernetes.io/zh/docs/home/一个pod运行多个容器。
2024-07-30 23:40:29
742
原创 k8s安装教程
由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;因容器镜像下载较慢,可能会导致报错,主要错误为没有准备好cni(集群网络插件),如有网络,请耐心等待即可。修改完成后需要重启操作系统,如不重启,可临时关闭,命令为swapoff -a。所有主机均需要操作。最小化安装系统需要安装ntpdate软件。所有主机均需要操作。所有集群主机均需要进行配置。可使用VPN实现下载。所有主机均需要操作。所有主机均需要操作。所有主机均需要操作。所有主机均需要操作。
2024-07-28 20:35:30
1849
原创 CAT链路追踪
CAT是由大众点评开源的一款调用链监控系统,基于JAVA开发的。有很多互联网企业在使用,热度非常高。它有一个非常强大和丰富的可视化报表界面,这一点其实对于一款调用链监控系统而来非常的重要。在CAT提供的报表界面中有非常多的功能,几乎能看到你想要的任何维度的报表数据。特点:聚合报表丰富,中文支持好,国内案例多国内案例:携程、点评、陆金所等报表名称报表内容Transaction报表一段代码的运行时间、次数、比如URL/cache/sql执行次数相应时间Event报表。
2024-07-25 01:00:54
1814
原创 高性能图数据库Neo4j从入门到实战
随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。
2024-07-20 23:27:07
874
原创 websocket
从上面的即时通讯聊天例子我们可以看到,要想做一个点对点的im应用,websocket采取的方式是让所有客户端连接服务端,服务器将不同客户端发送给自己的消息进行转发或者广播。为了说明html5规范中的websocket在客户端采用了websocket原生的API,实际开发中,有比较著名的两个库socket.io和sockjs,它们都对原始的websocket API做了进一步封装,提供了更多功能,都分为客户端和服务端的实现,实际应用中,可以选择使用。
2024-07-20 22:45:20
1029
原创 深入解析 Java Stream Lambda 编程
1、Lambda表达式概述1.1、Lambda表达式的简介Java(SE)8 于 2014 年 3 月发布,引入了多个改进特性,其中 Lambda 表达式(Lambda expression,也可称为闭包(Closure))是最受欢迎的新特性之一。Lambda 表达式允允许把函数作为一个方法的参数,允许在方法中传递代码块,从而实现更加灵活的编程方式。Lambda 表达式可以简化代码,减少样板代码的出现,并且使代码更加易读和易于维护。Lambda 表达式允许我们通过表达式来代替功能接口。Lambd
2024-07-07 21:28:32
252
原创 Java教程之IO模式精讲,NIO+BIO
在java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或 者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通 信架构存在一些缺陷,其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着互联网开发下通 信性能的高要求,Java在2002年开始支持了非阴塞式的I/O通信技术(NIO)。
2024-06-29 23:29:31
631
原创 IDEA debug 调试Evaluate Expression应用
在IDEA debug调试模式下,进入断点。在想要操作的变量上右键,点击Evaluate Expression打开Evaluate Expression计算表达式窗口。输入操作变量的表达式, 这里的e是我这段程序中的一个变量, 具体的依据自己项目而定, 点击Evaluate确定,就可以看到具体的值了。不知道要对变量具体进行怎么样的操作,这个时候idea中的这个功能就起到很大作用了。
2024-06-18 23:25:31
868
原创 Netty
1.API使用简单,开发门槛低2.功能强大,预置了多种编码功能,支持多种主流协议;3.定制能力强,可以通过channelHandler对通信框架进行灵活地扩展;4.性能高,通过与其他业界主流的NIO框架对比,netty的综合性能最优;5.成熟、稳定,netty修复了已发现的所有jdk nio bug,业务开发人员不需要再为nio的bug而烦恼;
2024-06-09 15:40:12
325
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人