数据结构概述
定义数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。
数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结 ...
ECMAScript6语法
简介ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目 标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
https://es6.ruanyifeng.com/#README
ECMAScript 和 JavaScript 的关系一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系? 要讲清楚这个问题,需要回顾历史。
1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提 交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262) 的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。
因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScr ...
RabbitMQ概述
MQ引言什么是MQMQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
MQ有哪些当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。
不同MQ特点ActiveMQActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。它是一个完全支持JMS规范的的消息中间件。丰富的API,多种集群架构模式让ActiveMQ在业界成为老牌的消息中间件,在中小型企业颇受欢迎!
KafkaKafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本 ...
SpringCloud Alibaba Seata处理分布式事务
概念分布式事务处理过程的-ID+三组件模型
Transaction ID XID 全局唯一的事务ID
3组件概念
TC (Transaction Coordinator) - 事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚。
TM (Transaction Manager) - 事务管理器
定义全局事务的范围:开始全局事务、提交或回滚全局事务。
RM (Resource Manager) - 资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
1.TM向TC申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的XID
2.XID在微服务调用链路的上下文中传播
3.RM向TC注册分支事务,将其耐入XID对应的全局事务的管辖
4.TM向TC发起针对XID的全局提交或回滚决议
5.TC调度XID下管辖的全部分支事务完成提交或回滚请求
Seta Server下载配置下载http://seata.io/zh-cn/blog/download.htmlj
选择版本点击source下载即可
我下载的是1.0.0版本
安装 ...
SpringCloud Alibaba Sentinel实现熔断与限流
安装Sentinel控制台https://github.com/alibaba/Sentinel/releases
点击选择版本,进入下载页面,页面最下方含有下载连接。点击下载
改控制台是由SpringBoot编写,内嵌tomcat。下载完成后保证java8环境OK,8080端口不能被占用
点击或者使用java -jar命令运行即可
启动成功后访问http://localhost:8080
登录账号密码均为sentinel
环境搭建创建模块cloudalibaba-sentinel-service8401
pom123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354<dependencies> <!--sentinel-datasource-nacos持久化--> <dependency> <groupId>com.alibaba.csp</group ...
SpringCloud Alibaba Nacos服务注册和配置中心
Nacos作为服务注册中心
配置项
Key
默认值
说明
服务端地址
spring.cloud.nacos.discovery.server-addr
无
Nacos Server 启动监听的ip地址和端口
服务名
spring.cloud.nacos.discovery.service
${spring.application.name}
给当前的服务命名
服务分组
spring.cloud.nacos.discovery.group
DEFAULT_GROUP
设置服务所处的分组
权重
spring.cloud.nacos.discovery.weight
1
取值范围 1 到 100,数值越大,权重越大
网卡名
spring.cloud.nacos.discovery.network-interface
无
当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址
注册的IP地址
spring.cloud.nacos.discovery.ip
无
优先级最高
注册的端口
spring.cl ...
SpringCloud之Sleuth分布式请求链路追踪
搭建链路监控步骤服务提供者以我们之前的模块cloud-provider-payment8001为例Eureka7001单机版
pom添加zipkin依赖,包含了sleuth
12345<!--包含了sleuth+zipkin--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId></dependency>
ymlspring.zikpin.base-urlzipkin地址
spring.sleuth.sampler.probability采样率 值介于 0 到 1 之间,1 则表示全部采集
1234567891011121314151617181920212223242526272829303132333435363738394041#服务端口号server: port: 8001spring: applicati ...
SpringCloud之Stream消息驱动
消息驱动之生产者新建cloud-stream-rabbitmq-provider8801模块
pom12345678910111213141516171819202122232425262728293031323334353637383940414243444546<dependencies> <!--stream-rabbit--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency> <!--eureka client--> <dependency> <groupId>org.springframework.cloud</groupId> ...
SpringCloud之Bus服务总线
环境搭建演示广播效果,增加复杂度,再以3355为模板再制作一个3366
新建cloud-config-client-3366
pom123456789101112131415161718192021222324252627282930313233343536 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependenc ...