自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一角残叶的博客

人生如逆旅,我亦是行人

  • 博客(1184)
  • 资源 (6)
  • 论坛 (1)
  • 收藏
  • 关注

原创 常用算法时间复杂度表

1 常用算法时间复杂度来源: http://www.bigocheatsheet.com/1.1 常用数据结构算法复杂度1.2 常用排序算法复杂度

2019-02-14 16:58:31 761

原创 JDK8新特性(1)—— 函数式接口

1 函数式接口有且仅有一个抽象方法的接口格式修饰符 interface 接口名称{ public abstract 返回值类型 方法名称(可选参数信息); // 其他非抽象方法内容}由于接口中的 public abstract 是可以省略的,所以函数式接口可以定义为public interface MyInterface{ void myMethod();}/** * @FunctionalInterface 检测接口是否为函数式接口 * 是:编译成功 */@Fu

2020-11-30 19:49:03 7

原创 深入浅出Java并发多线程(2)- 实现线程方式

1 实现多线程的方法有几种2种public class RunnableStyle implements Runnable { public static void main(String[] args) { Thread thread = new Thread(new RunnableStyle()); thread.start(); } @Override public void run() { System

2020-11-29 17:15:41 28

原创 深入浅出Java并发多线程(1)- 概述

1 线程的八大核心基础知识

2020-11-25 22:32:16 11

原创 SpringCloud 微服务架构(24)- zuul过滤

1 过滤器Zuul它包含了两个核心功能:对请求的路由和过滤。其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础;而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。其实,路由功能在真正运行时,它的路由映射和请求转发同样也由几个不同的过滤器完成的。所以,过滤器可以说是Zuul实现API网关功能最为核心的部件,每一个进入Zuul的HTTP请求都会经过一系列的过滤器处理链得到请求响应并返回给客户端。1.1 ZuulFilter简介Zuul 中的过

2020-11-25 21:07:46 12

原创 SpringCloud 微服务架构(23)- 面向服务的路由配置

1 面向服务的路由配置微服务一般是由几十、上百个服务组成,对于一个URL请求,最终会确认一个服务实例进行处理。如果对每个服务实例手动指定一个唯一访问地址,然后根据URL去手动实现请求匹配,这样做显然就不合理。Zuul支持与Eureka整合开发,根据ServiceID自动的从注册中心中获取服务地址并转发请求,这样做的好处不仅可以通过单个端点来访问应用的所有服务,而且在添加或移除服务实例的时候不用修改Zuul的路由配置。添加Eureka客户端依赖(zuul工程)<dependencies&gt

2020-11-22 12:38:23 14

原创 SpringCloud 微服务架构(22)- 网关

1 回顾2 网关不同的微服务一般会有不同的网络地址,客户端在访问这些微服务时必须记住几十甚至几百个地址,这对于客户端方来说太复杂也难以维护。如果让客户端直接与各个微服务通讯,可能会有很多问题:客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度在某些场景下存在跨域请求的问题加大身份认证的难度,每个微服务需要独立认证因此,我们需要一个微服务网关,介于客户端与服务器之间的中间层,所有的外部请求都会先经过微服务网关。客户端只需要与网关交互,只知道一个网关地址即可,这样简化了开

2020-11-22 11:34:59 26 2

原创 再学JavaScript ES(6-10)全版本语法大全(8)- 异步操作 Promise

1 回调异步加载 jsjs 是单线程的异步操作与回调的关系1.1 ES62 then 异步操作3 Resolve 和 Reject 异步操作

2020-11-16 23:04:26 18

原创 再学JavaScript ES(6-10)全版本语法大全(7)- ES6箭头函数

1 箭头函数返回值是表达式// 箭头后面是一个表达式let sum = (x, y, z) => x + y + zconsole.log(sum(1,2,3))返回值是对象// 箭头后面是一个表达式let sum = (x, y, z) => ({ x: x, y: y, z: z,})console.log(sum)(1, 2, 3)this2 Object PropertyES5ES6

2020-11-16 21:42:46 11

原创 再学JavaScript ES(6-10)全版本语法大全(6)- 函数参数的默认值

1 函数参数默认值1.1 ES5function f(x, y, z) { if (y === undefined) { y =1000 } if (z === undefined) { z =100 } return x + y + z}console.log(f(1))1.6 ES6// 指定默认值function f(x, y = 10, z = 100) { return x + y + z}

2020-11-16 21:07:48 8

原创 再学JavaScript ES(6-10)全版本语法大全(5)- Class 基础

1 Class1.1 ES5 声明一个类let Animal = function (type) { this.type = type this.eat = function(){}}let dog = new Animal("dog")let monkey = new Animal('monkey')console.log(dog)console.log(monkey)let Animal = function (type) { this.type

2020-11-15 16:56:21 13

原创 再学JavaScript ES(6-10)全版本语法大全(4)- 伪数组转换为数组

1 伪数组转换为数组伪数组:这个对象按照索引存储数据它具备一个 length 属性1.1 ES5let args = [].slice.call(arguments) // 集合// 将当前页面的所有图片转换为数组let imgs = [].slice.call(document.querySelectorAll('img')) // nodelist1.2 ES6let args = Array.from(arguments)let imgs = Array.from(doc

2020-11-14 17:19:52 33

原创 再学JavaScript ES(6-10)全版本语法大全(3)- 数组的遍历

1 数组遍历1.2 ES5 数组遍历方法1const arr = [1, 2, 3, 4, 5, 6]for (let i = 0; i < arr.length; i++){ console.log(arr[i])}方法2const arr = [1, 2, 3, 4, 5, 6]arr.forEach(function (item) { console.log(item)})for 和 foreach的区别for (let i = 0; i &

2020-11-14 13:01:00 20

原创 再学JavaScript ES(6-10)全版本语法大全(2)- 作用域

1 作用域常见的作用域主要分为几个类型:全局作用域、函数作用域、块状作用域、动态作用域。2.1 练习12.2 全局变量

2020-11-13 23:49:13 21

原创 再学JavaScript ES(6-10)全版本语法大全(1)

1 javascript2 开发环境安装 node js项目初始化npx es10-cli create es2019 或者 git clone https://github.com/cucygh/es-cli.git 项目名

2020-11-12 22:19:52 33

原创 SpringCloud 微服务架构(21)- sentinel - 对RestTemplate的支持

1 对RestTemplate的支持全局@SentinelRestTemplate 注解的属性支持限流( blockHandler , blockHandlerClass )和降级( fallback , fallbackClass )的处理。其中 blockHandler 或 fallback 属性对应的方法必须是对应 blockHandlerClass 或fallbackClass 属性中的静态方法。该方法的参数跟返回值跟org.springframework.http.client.C

2020-11-07 17:46:03 26

原创 SpringCloud 微服务架构(20)- 通用资源保护

1 通用资源保护package com.tzb.restorder.controller;import com.alibaba.csp.sentinel.annotation.SentinelResource;import com.tzb.restorder.entity.Product;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annota

2020-11-07 16:51:19 23

原创 SpringCloud 微服务架构(19)- 服务熔断 hystrix 的替换方案

1 服务熔断Hystrix的替换方案18年底Netflix官方宣布Hystrix 已经足够稳定,不再积极开发 Hystrix,该项目将处于维护模式。就目前来看Hystrix是比较稳定的,并且Hystrix只是停止开发新的版本,并不是完全停止维护,Bug什么的依然会维护的。因此短期内,Hystrix依然是继续使用的1.1 Sentinel阿里巴巴开源的一款断路器实现,目前在Spring Cloud的孵化器项目Spring Cloud Alibaba中的一员Sentinel本身在阿里内部已经被大规模采

2020-11-07 16:03:12 62

原创 SpringCloud 微服务架构(18)- hystrix 隔离政策

1 断路器的隔离策略微服务使用Hystrix熔断器实现了服务的自动降级,让微服务具备自我保护的能力,提升了系统的稳定性,也较好的解决雪崩效应。其使用方式目前支持两种策略:线程池隔离策略:使用一个线程池来存储当前的请求,线程池对请求作处理,设置任务返回处理超时时间,堆积的请求堆积入线程池队列。这种方式需要为每个依赖的服务申请线程池,有一定的资源消耗,好处是可以应对突发流量(流量洪峰来临时,处理不完可将数据存储到线程池队里慢慢处理)信号量隔离策略:使用一个原子计数器(或信号量)来记录当前有多少个线程在

2020-11-02 22:06:49 19

原创 SpringCloud 微服务架构(17)- hystrix断路器的工作状态

1 hystrix断路器的工作状态

2020-11-02 21:51:38 31

原创 SpringCloud 微服务架构(16)- hystrix:通过Actuator 获取 hystrix的监控数据

1 hystrix 的超时时间在之前的案例中,请求在超过1秒后都会返回错误信息,这是因为Hystix的默认超时时长为1,我们可以通过配置修改这个值:2 Hystrix 监控平台当请求失败,被拒绝,超时的时候,都会进入到降级方法中。但进入降级方法并不意味着断路器已经被打开。那么如何才能了解断路器中的状态呢?除了实现容错功能,Hystrix还提供了近乎实时的监控,HystrixCommand和HystrixObservableCommand在执行时,会生成执行结果和运行指标。比如每秒的请求数量,成功

2020-10-25 11:35:29 45

原创 SpringCloud 微服务架构(15)- 基于 Feign的熔断配置

1 基于 Feign的熔断配置SpringCloud Fegin默认已为Feign整合了hystrix,所以添加Feign依赖后就不用在添加hystri1.1 案例IProductFeignClientpackage com.tzb.order.feign;import com.tzb.order.entity.Product;import org.springframework.cloud.openfeign.FeignClient;import org.springframew

2020-10-24 22:56:39 35

原创 Redis从入门到高可用,分布式实践(10)- redis 客户端

1 java 客户端1.1 直连package redistest;import redis.clients.jedis.Jedis;/** * @Description TODO * @Author tzb * @Date 2020/10/18 15:45 * @Version 1.0 **/public class Demo01 { public static void main(String[] args) { Jedis jedis = new J

2020-10-18 16:27:54 25

原创 Redis从入门到高可用,分布式实践(9)- zset

1 有序集合1.1 zset 结构1.2 集合 vs 有序集合1.3 列表 vs 有序集合2 zset API2.1 zadd2.2 zrem2.3 zscore2.4 zincrby2.5 zcard2.6 zrange2.7 zrangebyscore2.8 zcount2.9 zremrangebyrank2.10 其他命令2.11 总结3 案例3.1 排行榜...

2020-10-18 11:09:12 25

原创 Redis从入门到高可用,分布式实践(8)- set

1 集合结构1.1 特点无序无重复集合间的操作2 API2.1 sadd,srem2.2 scard,sismember,srandmember,smemberssmembers2.3 sdiff,sinter,sunion2.4 小技巧3 案例3.1 标签

2020-10-18 10:38:21 22

原创 Redis从入门到高可用,分布式实践(7)- 列表

1 列表结构1.1 特点有序可以重复左右两边插入和弹出2 API2.1 rpush2.2 lpush2.3 linsert2.4 lpop2.5 rpop2.6 lrem2.7 ltrim2.8 lrange2.9 lindex2.10 llen2.11 lset2.12 blpop,brpop2.13 小技巧3 实战...

2020-10-18 10:25:28 24

原创 Redis从入门到高可用,分布式实践(6)- hash

1 哈希键值结构1.1 特点2 API2.1 hget,hset,hdel2.2 hexists,hlen2.3 hmget,hmset2.4 hgetall,hvals,hkeys使用 hgetall 的时候,牢记单线程2.5 hsetnx,hincrby,hincrbyfloat2.6 hash 总结3 案例3.1 记录每个用户主页的访问量3.2 缓存视频的基本信息4 更新用户属性4.1 用户信息- string 实现4.2 用户信息-

2020-10-18 10:04:03 26

原创 Redis从入门到高可用,分布式实践(5)- string

1 字符串键值结构1.1 场景缓存分布式锁计数器1.2 get,set,del1.3 incr,decr,incrby,decrby案例:记录网站每个用户的访问量缓存视频的基本信息(数据源在mysql)实现分布式 id 生成器1.4 set,setnx,setxx1.5 mget,msetn 次 get1 次 mget1.6 getset,append,strlen1.7 incrbyfloat,getrang

2020-10-17 23:39:57 20

原创 Redis从入门到高可用,分布式实践(4)- 数据结构和内部编码

1 数据结构和内部编码1.1 redisObject2 单线程

2020-10-17 17:22:03 19

原创 Redis从入门到高可用,分布式实践(3)- 通用命令

1 通用命令1.1 keyskeys 命令一般不在生产环境中使用时间复杂度:O(n)1.2 dbsize - 计算 key 的总数可以在生产中使用时间复杂度:O(1)1.4 exists1.5 删除指定 key-value1.6 关于 key 过期的命令1.7 type1.8 时间复杂度...

2020-10-17 17:12:06 17

原创 Redis从入门到高可用,分布式实践(2)- 安装和配置

1

2020-10-17 10:12:37 15

原创 Redis从入门到高可用,分布式实践(1)- 基础介绍

1 数据结构2 redis 特性2.1 速度快2.2 持久化2.3 多种数据结构2.4 功能丰富2.5 主从复制2.6 高可用、分布式3 典型的使用场景3.1 缓存系统3.2 计数器3.3 消息队列系统

2020-10-16 23:51:16 64

原创 Kafka 多维度系统精讲(12)- 集群

1 集群部署kafka 天然支持集群kafka 集群依赖 Zookeeper 进行协调kafka 主要通过 brokerId区分不同的节点1.1 配置 master 节点1.2 node1 节点其他配置同 master 节点1.3 启动集群每个节点启动 zk每个节点启动 kafka2 Kafka 副本集...

2020-10-13 19:41:38 34

原创 Kafka 多维度系统精讲(11)- stream

1 kafka stream 基本概念2 kafka 流处理关键词

2020-10-13 10:07:12 29

原创 Kafka 多维度系统精讲(10)- kafka consumer(4)

1 consumer 控制 offset 起始位置 /** * 手动指定 offset 的起始位置,及手动提交 offset */ private static void controlOffset() { Properties props = new Properties(); props.setProperty("bootstrap.servers", "192.168.10.103:9092"); props.setProp

2020-10-12 19:47:04 32

原创 Kafka 多维度系统精讲(9)- kafka consumer(3)-多线程

1 Consumer 多线程并发处理1.1 经典模式package com.tzb.kafka.consumer;import org.apache.kafka.clients.consumer.ConsumerRecord;import org.apache.kafka.clients.consumer.ConsumerRecords;import org.apache.kafka.clients.consumer.KafkaConsumer;import org.apache.kafka

2020-10-12 15:39:45 26

原创 Kafka 多维度系统精讲(8)- kafka consumer(2)

1 Consumer 单 Partition 提交 offsetbin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic tzb-new-topicbin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic tzb-new-topic --partitions 2生产者public

2020-10-12 14:38:49 26

原创 Kafka 多维度系统精讲(7)- kafka consumer(1)

1

2020-10-12 08:37:35 22

原创 Flink入门及实战(14)- Flink 状态管理

1 State1.1 Keyed State1.2 Operator State1.3 状态容错生成快照快照恢复2 CheckPoint2.1 checkpoint 配置2.2 State Backend(状态的后端存储)

2020-10-10 19:36:35 25

原创 新一代大数据计算引擎 Flink从入门到实战 (21) - 项目实战(7)- 完成2个流关联数据的清洗

1 完成两个流关联数据的清洗package test.flink.scala.scalaprojectimport java.text.SimpleDateFormatimport java.utilimport java.util.{Date, Properties}import org.apache.flink.api.common.functions.RuntimeContextimport org.apache.flink.api.common.serialization.Simpl

2020-10-05 22:41:06 60 2

针对Android的Java基础学习

针对Android的Java基础学习,介绍了关于JAVA的基础知识和各种语法。

2014-06-29

Eclipse从入门到精通

Eclipse从入门到精通,详细介绍了Eclipse的基本操作。

2014-06-29

matlab信号处理

matlab信号处理,方便新手对matlab的入门和学习,不过对大家的英文水平有一定的要求。

2013-12-08

mfc编程基础

还在为mfc 而发愁吗? 本书带你走进mfc 的世界,领略C++编程的魅力,学习mfc 编程基础的知识。

2013-12-08

Python算法(英文)

Python版数据结构

2017-05-14

Python入门书籍

Python编程

2017-05-14

一角残叶的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除