- 博客(316)
- 资源 (23)
- 收藏
- 关注
原创 分布式系统认证方案
随着软件环境和需求的变化,软件的架构由单体结构演变为分布式架构,具有分布式架构的系统叫分布式系统,分布式系统的运行通常依赖网络,它将单体结构的系统分为若干服务,服务之间通过网络交互来完成用户的业务处理,当前流程的微服务架构就是分布式系统架构,如下图:分布式系统具有如下基本特点:1、分布性:每个部分都可以独立部署,服务之间交互通过网络进行通信,比如:订单服务、商品服务。2、伸缩性:每个部分都可以集群方法部署,并可针对部分节点进行硬件及软件扩容,具有一定的伸缩能力。
2024-09-05 23:45:00 778
原创 麒麟系统 mate_indicators 进程占用内存资源高
桌面组件mate-indicators在长时间使用后发现有占用内存过高的情况,尤其是在某些用户场景,如频繁打开日历或不停点击日历等操作,会造成mate-indicators占用内存的迅速增长,且在长时间不操作的情况下,占用的内存不释放。从现象来看,mate-indicators在运行中未及时回收内存,长时间运行时,就出现了内存占用过高的现象。升级mate-indicators至mate-indicators-20150918kord0ukui58-10.p07.ky10及以后版本。
2024-09-05 23:45:00 392
原创 RocketMQ源码分析
RocketMQ源码分析 - 环境搭建RocketMQ源码分析 - NameServerRocketMQ源码分析 - ProducerRocketMQ源码分析 - 消息存储RocketMQ源码分析 - Consumer
2024-08-20 23:45:00 364
原创 RocketMQ源码分析 - 环境搭建
创建conf配置文件夹,从distribution拷贝broker.conf和logback_broker.xml和logback_namesrv.xml。展开namesrv模块,右键NamesrvStartup.java。配置ROCKETMO_HOME。
2024-08-20 23:45:00 645
原创 RocketMQ源码分析 - NameServer
消息中间件的设计思路一般是基于主题订阅发布的机制,消息生产者(Producer)发送某一个主题消息到消息服务器,消息服务器负责将消息持久化存储,消息消费者(Consumer)订阅该兴趣的主题,消息服务器根据订阅信息(路由信息)将消息推送到消费者(Push模式)或者消费者主动向消息服务器拉取(Pull模式),从而实现消息生产者与消息消费者解耦。NameServer与每台Broker保持长连接,并间隔10s检测Broker是否存活,如果检测到Broker宕机,则从路由注册表中删除。
2024-08-20 23:45:00 916
原创 RocketMQ源码分析 - Producer
/创建主题//根据时间戳从队列中查找消息偏移量//查找消息队列中最大的偏移量//查找消息队列中最小的偏移量 long minOffset(final MessageQueue mq)//根据偏移量查找消息//根据条件查找消息//根据消息ID和主题查找消息//启动//关闭//查找该主题下所有消息//同步发送消息//同步超时发送消息//异步发送消息//异步超时发送消息//发送单向消息//选择指定队列同步发送消息。
2024-08-20 23:45:00 947
原创 RocketMQ源码分析 - 消息存储
RocketMQ源码分析 - 消息存储消息存储1) 消息存储核心类2) 消息存储流程3) 存储文件4) 存储文件内存映射1 MappedFileQueue2 MappedFile3 TransientStorePool5) 实时更新消息消费队列与索引文件1 转发到ConsumerQueue2 转发到Index6) 消息队列喝索引文件恢复1 存储文件加载2 正常恢复3 异常恢复7) 刷盘机制1 同步刷盘2 异步刷盘8) 过期文件删除机制9) 小结消息存储1) 消息存储核心类private final
2024-08-20 23:45:00 978
原创 RocketMQ源码分析 - Consumer
消息消费以组的模式开展,一个消费组内可以包含多个消费者,每一个消费者组可订阅多个主题,消费组之间有集群模式和广播模式两种消费模式。集群模式,主题下的同一条消息只允许被其中一个消费者消费。广播模式,主题下的同一条消息,将被集群内的所有消费者消费一次。消息服务器与消费者之间的消息传递也有两种模式:推模式、拉模式。所谓的拉模式,是消费端主动拉起拉消息请求,而推模式是消息达到消费服务端后,推送给消息消费者。RocketMQ消息推模式的实现基于拉模式,在拉模式上包装一层,一个拉取任务完成后开始下一个拉取任务。
2024-08-20 23:45:00 1007
原创 Docker 容器网络及其配置说明
自定义 docker0 网桥的网络属性信息需要修改 /etc/docker/daemon.json 配置文件在客户端上像 dockerd 直接传递 "-H|–host"选项指定要控制哪台主机上的 docker 容器/ #再创建一个容器,使用默认的bridge桥/ # ls/ #
2024-07-06 23:45:00 2024
原创 rocketmq-console可视化界面功能说明
(1) Broker TOP 10 :是指集群中的Broker列表,可以查看broker处理消息的数量。rocketmq-console是rocketmq的一款可视化工具,提供了mq的使用详情等功能。(3) 主题 TOP 10 : 是集群中Topic的列表,查看所有topic的消息数量。(2) Broker 5min trend : 五分钟内Broker的趋势信息。TopicTest是rocketmq系统自带的Topic,默认配置有4个队列。(4) 筛选出某个Topic下5分钟的消息数量。
2024-07-06 23:45:00 970
原创 Docker的理解
UnionFS使用branch(分子)将不同文件系统的文件和目录透明叠加覆盖, 形成一个单一一致的文件系统, 此外UnionFS使用写时复制(Copy on Write,简称, CoW)技术来提高合并后文件系统的资源利用。Docker镜像分层、增量增加等功能正是通过利用AUFS的分层文件系统结构、增量增加等功能实现, 这也导致了运行Docker容器如果没有指定volume(数据卷)或bind mount, 则Docker容器结束后,运行时产生的数据便丢失了。
2024-06-27 23:45:00 1209
原创 Kubernetes实现应用零宕机
Kubernetes确实有神奇的作用,但只有当应用程序尽可能是云原生且配置正确时,它才能发挥神奇作用。最少两个实例添加健康检查(探针)应用程序必须处理Sigterm配置自动缩放器给予足够的资源使用pod反亲和力添加PDB如果一切设置正确,Kubernetes体验将令人难以置信,你将大大减少应用停机情况。
2024-06-27 23:45:00 576
原创 Kubernetes架构详解
Kubernetes的核心组件部署在Master管理节点上,主要作用是作为Kubernetes的"大脑",控制整个分布式集群的运转,Node节点作为"四肢",执行Master的操作指令。Scheduler调度程序会监视来自API Server的新请求,并将其分配给运行状态良好的节点,比如:对节点的质量进行排名,并将Pod部署到最适合的节点。在Kubernetes中,Pod是调度的最小元素,没有它容器就不能成为集群的一部分,主节点会把Pod调度到特定工作节点上,并与容器运行时协调以启动容器。
2024-06-12 23:45:00 1013
原创 K8S功能详解
Kubernetes工作节点(Node)通过:Kubelet、Kube-proxy和容器运行时等组件,提供了强大的容器运行环境。K8S全称是"Kubernetes",是一个容器编排平台,用于自动化应用程序的部署、扩展和管理,由谷歌(Google)开发。1.容器编排:Kubernetes(K8S)的核心功能之一,容器编排可以自动管理、协调容器化应用程序的部署、扩展和运行。等,确保集群状态与期望状态一致。以及,监控未绑定到节点的Pod,并根据预定义的策略和约束,将其分配到合适的节点上。
2024-06-12 23:45:00 1528
原创 Docker 是什么? Docker 和 k8s 之间是什么关系?
Docker 本质上就是一个将程序和环境打包并运行的工具软件,而 Docker 容器本质上只是个自带独立运行环境的特殊进程,底层用的其实是宿主机的操作系统内核。Docker 软件 通过 Dockerfile 描述环境和应用程序的依赖关系, docker build 构建镜像, docker pull/push 跟 Docker Registry 交互实现存储和分发镜像,docker run 命令基于镜像启动容器,基于容器技术运行程序和它对应的环境,从而解决环境依赖导致的各种问题。
2024-05-20 23:30:00 976
原创 Spring Boot优雅重试调用第三方API
Spring Retry是Spring框架提供的一个模块,它通过提供注解或编程的方式,帮助我们实现方法级别的重试机制。在Spring Boot中,可以很方便地集成并使用Spring Retry。在Spring Boot项目中,通过集成Spring Retry模块,我们可以优雅地实现对第三方API调用的重试机制。通过@Retryable注解,我们能够很方便地在方法级别上添加重试策略。同时,异步方法和异常类型的支持使得我们能够更灵活地应对不同的业务场景。
2024-05-20 08:50:28 595
原创 RocketMQ消息发送样例
顺序消息的原理解析:在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);消费者将接收包含TAGA或TAGC的消息,但是限制是一个消息只能有一个标签,这对于复杂的场景可能不起作用。限制是这些批量消息应该有相同的topic,相同的waitStoreMsgOK,而且不能是延时消息。上图说明了事务消息的大致方案,其中分为两个流程:正常事务消息的发送及提交、事务消息的补偿流程。消费者采用负载均衡方式消费消息,多个消费者共同消费队列消息,每个消费者处理的消息不同。
2024-04-10 23:30:00 1137
原创 Spring Boot实现跨域的5种方式
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域当前页面url被请求页面url是否跨域原因否同源(协议、域名、端口号相同)跨域协议不同 (http/https)跨域主域名不同 (test/baidu)跨域子域名不同 (www/bloq)跨域端口号不同 (8080/7001)首先编写一个过滤,可以起名字为MyCorsFilter.java@Component@Override@Override@Override。
2024-04-10 23:30:00 1091 1
原创 安装RocketMQ报错汇总
原因在于如果我们已经创建好了store文件夹作为存储路径,并且broker的配置文件中写的是同一个路径,就会起冲突。修改broker-b-s.properties配置文件中的rocketmq路径,改成rocketmq1。
2024-03-18 11:49:05 436
原创 Centos启用rc-local服务
大多时候我们可以在/etc/rc.d/rc.local中写一些命令来实现随着服务器的启动(重启)运行自己的程序或服务,但是配置后无法启动,查看了下rc-local.service服务状态显示未启动。static;Condition: start condition failed at 五 2024-03-15 15:40:37 CST;2s ago。
2024-03-17 23:04:56 925
原创 RocketMQ集群搭建
Producer:消息的发送者;举例:发信者Consumer:消息的接收者;举例:收信者Broker:暂存和传输消息;举例:邮局NameServer:管理Broker;举例:各个邮局的管理机构Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息Message Queue:相当于是Topic的分区;用于并行发送和接收消息。
2024-03-15 18:41:58 1053
原创 RocketMQ快速入门
bin:启动脚本,包括shell脚本和CMD脚本conf:实例配置文件,包括broker配置文件、logback配置文件等lib:依赖jar包,包括Netty、commons-lang、FastJSON等。
2024-03-12 23:45:00 2063
原创 Python学习路线 - Python高阶技巧 - SQL入门和实战
不管是何种开发语言,亦或是何种开发方向,SQL都是开发人员无法绕开的话题。除了一门趁手的编程语言外,SQL语言也是开发人员人人必备的开发技能。信息化社会,无处不在的就是数据。编程语言可以归纳为,数据的计算一类。那数据的存储呢?MySQL数据库管理系统由瑞典的DataKonsultAB公司研发,该公司被Sun公司收购,现在Sun公司又被Oracle公司收购,因此MySQL目前属于 Oracle 旗下产品。
2024-02-06 23:00:00 1167
原创 Python学习路线 - Python语言基础入门 - 面向对象
在上一节中,我们简单了解到可以使用类去封装属性,并基于类创建出一个个的对象来使用。现在我们来看看类的使用语法:在类中定义成员方法和定义函数基本一致,但仍有细微区别:可以看到,在方法定义的参数列表中,有一个:self关键字self关键字是成员方法定义的时候,必须填写的。它用来表示类对象自身的意思当我们使用类对象调用方法的时,self会自动被python传入在方法内部,想要访问类的成员变量,必须使用self。
2024-02-06 08:44:10 966
原创 Python学习路线 - Python高阶技巧 - PySpark案例实战
定义:Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎。简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃致EB级别的海量数据。
2024-02-05 23:00:00 2510
原创 Python学习路线 - Python高阶技巧 - 拓展
1.什么是闭包定义双层嵌套函数, 内层函数可以访问外层函数的变量将内存函数作为外层函数的返回,此内层函数就是闭包函数2.闭包的好处和缺点。
2024-02-05 23:00:00 1746
原创 Python学习路线 - Python语言基础入门 - Python基础综合案例 - 数据可视化 - 动态柱状图
1.通过Bar()构建一个柱状图对象2.和折线图一样,通过add_xaxis()和add_yaxis()添加x和y轴数据3.通过柱状图对象的:reversal_axis(),反转x和y轴4.通过label_opts=LabelOpts(position=“right”)设置数值标签在右侧显示。
2023-12-24 10:48:42 1534
原创 Python学习路线 - Python语言基础入门 - Python基础综合案例 - 数据可视化 - 地图可视化
上述代码执行后输出,每个省的确诊数据。参考国内疫情地图生成河南省疫情地图。把各市数据汇总到一个列表中。获取每个省份的确诊数据。数据整体结构(全国)
2023-12-24 10:48:07 1025 1
原创 Python学习路线 - Python语言基础入门 - Python基础综合案例 - 数据可视化 - 折线图
本案例数据全部来自 <<百度疫情实时大数据报告>>,及公开的全球各国GDP数据。使用的技术Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而 Python 是门富有表达力的语言,很适合用于数据处理. 当数据分析遇上数据可视化时pyecharts 诞生了。JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据JSON本质上是一个带有特定格式的字符串。
2023-12-23 09:54:16 1433
原创 Python学习路线 - Python语言基础入门 - Python异常、模块与包
当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常",也就是我们常说的BUGPython 模块(Module),是一个Python文件,以.py结尾。模块能定义函数,类和变量,模块里也能包含可执行的代码。模块的作用:Python中很多各种不同的模块,每一个模块都可以帮助我们快速的实现一些功能,比如实现和时间相关的功能就可以使用time模块。我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能。
2023-12-23 09:53:17 1039
原创 Python学习路线 - Python语言基础入门 - 数据容器
基本语法列表内的每一个数据,称之为元素已 [] 作为标识列表内每一个元素之间用,逗号隔开列表的定义方式案例演示:使用[]的方式定义列表注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套"""演示数据容器之:list列表语法:[元素,元素,....]"""# 定义一个列表list# 定义一个嵌套的列表总结1.列表的定义语法[元素1, 元素2, 元素3, …]2.什么是元素?数据容器内的每一份数据,都称之为元素3.元素的类型有限制吗?
2023-12-16 16:16:47 208
原创 Python学习路线 - Python语言基础入门 - 函数使用
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。为什么随时都可以使用len()统计长度?是提前写好的可以重复使用实现统计长度这一特定功能的代码段我们使用过的:input()、print()、str()、int()等都是Python的内置函数函数的定义:函数的调用:"" "演示函数的定义语法 "" "# 定义一个函数,输出相关信息def say_hi() : print(f "Hi 我是mry,开始自学Python") # 调用函数,让定义的函数开始工作 say_hi()
2023-12-09 10:43:28 241
原创 Python学习路线 - Python语言基础入门 - 学习汇总
Python学习路线 - Python语言基础入门 - 学习汇总目录准备工作基础语法判断语句功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键目录准备工作基础语法判断语句功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键功能快捷键
2023-12-03 11:21:50 322
原创 Python学习路线 - Python语言基础入门 - 判断语句
进行逻辑判断,是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能。为什么学习判断语句判断在程序中广泛应用,如果没有它,这些功能都难以实现。True 表示真 (是、肯定)False 表示假 (否、否定)定义变量存储布尔类型数据:变量名称 = 布尔类型字面量。
2023-12-03 11:11:49 305
原创 Python学习路线 - Python语言基础入门 - 基础语法
字面量:在代码中,被写下来的固定的值,称之为字面量。变量:在程序运行时,能存储计算结果或能表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的变量的定义格式变量名称 = 变量的值1.每一个变量都有自己的名称,称之为:变量名,也就是变量本身2.每一个变量都有自己存储的值(内容),称之为:变量值3.登号是赋值,表示将登号右侧的值,赋予左侧的变量"" "演示Python中变量的相关操作 "" "# 定义一个变量,用来记录钱包余额。
2023-12-02 11:41:17 164
原创 Python学习路线 - Python语言基础入门 - 准备工作
编程语言:用于人类和计算机进行交流的一种语言,通过编写编程语言的代码,去指挥计算机工作。它无法直接和计算机沟通,需要翻译工具(解释器或编译器)将代码翻译成二进制,从而实现和计算机的畅顺沟通。
2023-12-02 11:38:37 103
后台管理系统一.zip
2020-11-09
dubbo-admin-develop.zip
2020-10-27
jdk-8u161-linux-x64.tar.gz 压缩包
2020-10-26
VMware-workstation-full-16.0.0-16894299.rar
2020-09-21
nexus-3.19.1-01.zip
2020-09-21
jquery-1.8.3.min.zip
2020-08-20
layui.js 下载
2020-08-18
elastic-job-lite-console-2.1.5.tar.gz
2020-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人