计算机控制系统计算机控制系统(Computer Control System,简称CCS)是应用计算机参与控制并借助一些辅助部件与被控对象相联系,以获得一定控制目的而构成的系统。这里的计算机通常指数字计算机,可以有各种规模,如从微型到大型的通用或专用计算机。辅助部件主要指输入输出接口、检测装置和执行装置等。与被控对象的联系和部件间的联系,可以是有线方式,如通过电缆的模拟信号或数字信号进行联系;也可以是无线方式,如用红外线、微波、无线电波、光波等进行联系。被控对象的范围很广,包括各行各业的生产过程、机械装置、交通工具、机器人、实验装置、仪器仪表、家庭生活设施、家用电器和儿童玩具等。控制目的可以是使被控对象的状态或运动过程达到某种要求,也可以是达到某种最优化目标。
与一般控制系统相同,计算机控制系统可以是闭环的,这时计算机要不断采集被控对象的各种状态信息,按照一定的控制策略处理后,输出控制信息直接影响被控对象。它也可以是开环的,这有两种方式:一种是计算机只按时间顺序或某种给定的规则影响被控对象;另一种是计算机将来自被控对象的信息处理后,只向操作人员提供操作指导信息,然后由人工去影响被控对象 ...
分布式分布式理论CAP理论
一致性(Consistency):查出来是最新数据,指的是每次读取都能获得最新的写入数据,并且所有节点在同一时间看到相同的数据。简单来说,在一个一致性系统中,如果一个客户端提交了一个更新请求(如更新数据库),那么任何后续的读请求都会返回该更新后的最新值。
可用性(Availability):节点宕机了会有其他节点正确响应,指的是每个请求无论当前是否正在处理分布式状态的改变,都应该在合理的时间内得到响应。换句话说,系统中的每个节点在接收到请求后必须能够及时地给出响应,而不管其他节点的状态如何。
分区容错性(Partition Tolerance):因为故障导致部分节点不联通,网络产生分区,这个时候和这个节点不连通的部分就访问不到这个数据了,造成了数据的不可用,要控制这种情况其实就是控制分区的容错性
一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。
当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数 ...
RocketMqRocketMq主要采用发布订阅的方式,发布订阅又有哪些有点呢:解耦、异步、可伸缩、负载均衡
解耦:发布者和订阅者之间没有直接依赖关系
异步:增快响应速度
可伸缩:根据需要动态地添加或删除订阅者
负载均衡:将消息均匀地分配给多个消费者,避免某个消费者过载
快速开始本地部署 RocketMQ | RocketMQ (apache.org)
常用部署组件2.1 Broker
Broker是RocketMQ的核心,大部分工作都在Broker中完成,包括接收请求,处理消费,消费持久,消息的HA,以及服务端过滤等都在里面完成
就相当于这个Rocket服务本身:包括了主题,消息队列
Broker 是 RocketMQ 的核心服务节点,负责接收来自 Producer(生产者)的消息、存储消息以及将消息转发给 Consumer(消费者)。在 RocketMQ 架构中,Broker 分为 Master Broker 和 Slave Broker(或称为 Replica)两种角色:
Master Broker:处理消息的读写请求,是生产者发送消息和消费者消费消息的主要目标。
Sla ...
技术漫谈如何解决订单一致性问题
Lua + RocketMq事务消息
Lua:保障原子性,相比Java事务响应更加快捷
RocketMq:保障消息发送环节的事务性
事务消息 | RocketMQ (apache.org)
XA协议
原理:将四个调用分支封装成包含四个独立事务分支的大事务
特点:多分支环境下资源锁定范围大,并发度低,随着下游分支的增加,系统性能会越来越差
普通消息+订单事务
原理:基于MQ异步实现事务同步
特点:并发量大、无法保证最终一致性
该方案中消息下游分支和订单系统变更的主分支很容易出现不一致的现象,例如:
消息发送成功,订单没有执行成功,需要回滚整个事务。
订单执行成功,消息没有发送成功,需要额外补偿才能发现不一致。
消息发送超时未知,此时无法判断需要回滚订单还是提交订单变更。
RocketMQ事务消息
用于分布式服务间的最终一致性,将消息发送和主事务绑定,解决了普通消息+主事务的结果不一致的问题
上述普通消息方案中,普通消息和订单事务无法保证一致的原因,本质上是由于普通消息无法像单机数据库事务一样,具备提交、回滚和统一协调的能力。
而基于A ...
算法突破计划
图解算法数据结构 - 力扣
算法经典问题 - Java
动态规划
递归 + 记忆化 => 减少计算 核心问题:动态转移方程!
动态规划由大问题拆成子问题,子问题推出大问题(这个就涉及到动态转移方程),这个步骤利用到了原先计算的结果,减少了计算量。
而在这个子问题推出大问题的步骤中其实计算的dp矩阵的结果不一定是期望的值,也可能是这个步骤中间不断刷新的变量,所以千万不要在想动态转移方程的的时候陷入“我一定要以题目的结果作为dp的最终值”的问题中!
动态规划(基础版) - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台
菜鸟斐波那契数列斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
12F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。
123456789101112public int fibPlus(int n) { ...
管理者应有的品质
《可复制的领导力》
管理的理解:通过别人来完成任务!
给与员工足够的信任,这样才能培养起来一个能独当一面的得力员工!
没有给员工足够的信任,他们必然不会经过磨炼,不能独立承担重要任务,一直在等待老板的指令,而老板却疲于奔命,到头来,双方都得不到成长。分工合作,如果船长一直在驾驶室内开船,没有培养相关的人才,船员们就会顾此失彼,整个船队如一团乱麻,这无疑是团队管理中的一大败笔。
抛弃你的优柔寡断
知乎文摘
所有的人都不喜欢含糊其辞、捉摸不定的人,因为这会浪费宝贵的时间,影响前进的道路。直率的人能够集中精力、迅速做出决断、毫不含糊地做出决定。直率、寡言而又果断的人说起话来非常有分量,通常会给人留下好印象。空谈、说起话来不经过大脑的人总会引起别人对他的素质和思维能力的怀疑。你在初次与人交流时,可以通过他使用词汇的多少和表达自己思想的语言是否直接,来判断这个人是否是一个优秀的商人。不管你的能力、教育程度或聪明程度如何,如果你不能一语中的,不能归纳自己的思想,你就永远也不会成为领导者。
如果我们充分信任内心之中的神圣力量,如果我们学着充满活力地做出决定 ...
MySQL深入浅出
MySQL其实没那么神秘,也就是一个应用程序,他像其他程序一样共用电脑的CPU内存以及硬盘,但是他主要的作用就是提供了一套很适用于软件数据的数据存储结构存储方案,以及完善的增删改查机制,和一些高级功能能适配很多场景的开发
数据库设计的三大范式第一范式:原子性存储的数据应该具有不可再分性
第二范式:唯一性非主键字段的值必须完全依赖主键
一般这种情况需要做分表,下图为User表但是包含了课程的信息,非主键字段(课表信息的字段)并未全依赖主键字段,这是冗余的应该拆分出来
第三范式:独立性消除传递依赖(非主键值不依赖于另一个非主键值)
非主键字段之间产生依赖
修改
E-R图E-R图,也称为实体关系图,用于显示实体集之间的关系。它提供了一种表示实体类型、属性和连接的方法;用来描述现实世界的概念模型。ER模型是数据库的设计或蓝图,将来可以作为数据库来实现。
包括:实体、属性、关系
MySQL知识小站MySQL中的聚簇索引、非聚簇索引、联合索引和唯一索引_mysql唯一索引是聚簇索引吗-CSDN博客
设计库模板1234567CREATE TABLE `p ...
Gradle项目结构
新人加载Gradle项目的坑
Gradle项目打包器中的distributionUrl需要改成自己的Gradle构建包
更改gradle.properties在settings.gradle中的系统属性配置
更改项目JDK和Gradle的JDK为build.gradle适配的JDK
配置hosts
1Unknown host 'nexus.labition.com'. You may need to adjust the proxy settings in Gradle.
1cd C:\Windows\System32\drivers\etc
10.0.0.0 nexus.labition.com #在hosts文件中填写nexus.labition.com的真实地址
PostgreSQL
账号:postgres
密码:123456
数据结构PostgreSQL 是一个功能强大的开源关系型数据库系统,它支持多种数据类型和高级特性,包括数组类型、键值对存储(如 hstore)以及 JSON 和 JSONB 类型。
数组类型在 PostgreSQL 中,你可以为几乎所有内置的数据类型创建数组。数组类型用一对花括号 {} 包围起来,例如一个整数数组可以表示为 {1, 2, 3}。
创建表时定义数组列:
12345CREATE TABLE products ( id serial PRIMARY KEY, name text NOT NULL, dimensions integer[] -- 定义一个整数数组列);
插入数据:
1INSERT INTO products (name, dimensions) VALUES ('Widget', '{10, 20, 30}');
查询数据:
1SELECT * FROM prod ...
浙江大学远程实验平台基础知识引脚和串口引脚和串口在计算机和电子领域中是两个不同的概念,它们各自具有不同的作用和功能。以下是对引脚和串口的详细解释:
一、引脚(Pin)
内部电路信号通路
定义:引脚,也叫管脚,英文叫Pin。它是从集成电路(芯片)内部电路引出与外围电路的接线,所有的引脚就构成了这块芯片的接口。
功能:引脚用于连接和传输电信号,实现数据的传输和控制。引脚的功能和用途取决于所连接的设备或电路的设计。
分类:按照功能,引脚可以分为主电源、外接晶振或振荡器、多功能I/O口,以及控制、选通和复位等类型。例如,在AT89S52芯片中,引脚被划分为多种功能,包括图像识别、自动相位控制、视频信号输出等。
结构:引脚可划分为脚跟(bottom)、脚趾(toe)、脚侧(side)等部分。通过软钎焊使引脚末端与印制板上的焊盘共同形成焊点。
二、串口(Serial Port)
侧重与外部通信
定义:串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。它用于在计算机和外部设备之间进行数据传输。
特点:串口通信线路简单,只需一对传输线即可实 ...