自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

怀素的专栏

桃之夭夭,灼灼其华

  • 博客(553)
  • 资源 (14)
  • 收藏
  • 关注

原创 SpringBoot SSL 双向认证配置

keytool -genkeypair -alias serverkey -keyalg RSA -dname "CN=Server,OU=Ziguo,O=Ziguo,L=Ziguo,S=NY,C=CN" -keypass bigkeystorepass -keystore server.jks -storepass bigkeystorepass keytool -genkeypair -a...

2020-06-08 21:57:18 2137

原创 流利说反编译抓包笔记

课程Level结构{ "levels": [ { "id": "5695c8242c11982262000000", "name": "Level 1", "totalStarCount": 320, "unlockRequiredStarCount": 288, "seq": 1, "bgUrl": "http://cdn.llsapp.com/s...

2020-03-31 16:40:29 33441

原创 2020复工复产后思考

全国已经开始全面复工复产,小微企业在这场疫情中的危机时刻围绕在我们这些个体身边。此时此刻是复盘自己在这场疫情中所做的事情。2019年过年前,和朋友出去聚餐,当时新闻有报道说武汉有疫情发生,聚餐过程中还谈论此事,当时没太在意,聚餐完后经过一家药店,随口问“有没有口罩”,店内的营业员回答道“有,刚补货,正在卸货”。当时犹豫是不是要买点,想到福岛核电站大家囤积食盐的事情,同时想到回家路程太远,家楼下有...

2020-03-28 02:06:12 411

原创 构建Spring Cloud 项目Docker镜像

随着云的普及,Devops开发方式越来越流行,开发运维一体化让开发感到便捷很多。从单人开发到多人协同开发,从开发交付测试人到交付用户,这中间思路的转变也是随着技术不断革新而转变。最初在公司尝试开发流程,没有技术的支持,全靠人治效果可想而知;后来尝试持续交付,开发流程配合工具让开发尝到甜头,效率也提升不少,但是在一个toB的软件公司,运维的压力其实比较大(主要是同一个软件产品,最终部署时软件功能...

2020-01-11 01:28:11 340

原创 linux下SS 网络命令详解

ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信,当服务...

2020-01-02 14:35:23 531

原创 JVM垃圾收集器ZGC

Java11已经推出最新垃圾收集器,ZGC主要为了减少JVM停顿时间。阿里双十一已经在项目中使用ZGC,并且取得不错战绩。支持大内存使用,所以只支持64位系统。ZGC全称是Z Garbage Collector,是一款可伸缩(scalable)的低延迟(low latency garbage)、并发(concurrent)垃圾回收器,旨在实现以下几个目标:停顿时间不超过10ms 停顿时间...

2019-12-19 16:47:52 424

原创 互联网没有免费的午餐

16年开始创业开发APP,中间必须使用互联网上成熟的解决方案或中间件服务。支付服务如支付宝或微信,存储服务用七牛,消息推送服务如个推或极光,即时消息服务如融云或环信。主要说说使用融云的经历。即使通讯当初选型主要考虑费用、集成是否方便等因素,最后选择融云,主要是免费,问题反馈及时。但是到2018.11月,突然收费,收费的过程也是惊心动魄。第一次接到电话对方说融云公司的,我们的服务开始收费。说...

2019-12-18 22:23:49 297

原创 读编译原理感想

最近在看Java虚拟机方面的资料,了解Class文件格式,同时还了解到数据运行时的一些流程。但是读到CAS、编译优化等技术时,有点迷茫,继续找操作系统原理、编译原理等书籍看看,了解到互斥、中继、汇编、机器代码、硬件指令集等。一个应用程序从编写到编译生成中间代码再到硬件上通过硬件指令集运行,每一个步骤都可以实现优化。这中间编译器起着承上启下的作用,可以操作空间非常大,它既可以静态生成中间代码,还是在...

2019-12-13 11:47:10 775

原创 JVM优化策略——编译及垃圾回收器

工欲善其事必先利其器,要了解JVM运行情况,必须用工具获取数据才能发现和诊断问题。 让JVM这个黑盒变成我们可以认识的白盒。名称 作用 基本命令 jps 显示指定系统内所有的HotSpot虚拟机进程 jps -l jstat 用于收集Hotspot虚拟机各方面的运行数据 jstat[option vmid[interval[s|ms][cou...

2019-12-05 21:10:40 681

原创 JVM加载机制与执行流程

Java文件编译成Class以后,需要放到内存中才能运行,这个过程相当于数据处理的过程ETL(抽取、转换、加载)。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶...

2019-12-03 23:18:59 178

原创 Java Class 文件结构

Java语言只是我们了解编程的基础语法,最终编译成的Class文件才是JVM解读的二进制文件,了解Class文件结构,有助于理解编程原理。通过javap我们将了解Class内部结构。Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据, 没有空隙存在。...

2019-11-29 14:59:40 190

原创 Java锁及实现方式

锁的概念在数据库出现比较多,为了实现数据库的不同隔离级别,数据库会定义不同的锁类型。Java为了实现同步及线程安全,也会定义不同的锁。所谓的同步操作即原子操作(atomic operation)意为“不可被中断的一个或一系列操作”,类似数据库中的事务。线程安全实现方式互斥同步(锁机制)互斥是实现同步的一种手段,临界区(Critical Section)、互斥量(Mutex)和信号量(S...

2019-11-26 14:03:50 4866

原创 Java内存模型的基础以及内存语义

Java中多个线程访问同一变量,对应到硬件上就是内存和CPU缓存,JVM是如何处理数据竞争的,必须了解Java的内存模型以及编译相关的JVM指令,同时还必须了解线程的实现方式。Java语言通过编译器编译成JVM认识的class文件,JVM再把Class中的指令集转换成操作系统可识别二进制编码,操作系统再驱动硬件包括CPU、内存、磁盘等硬件设备。在这个过程中,数据是多分的,如何保证数据一致性很重...

2019-11-22 15:51:20 168

原创 微服务模式总结

现在微服务大行其道,其中必须提到网络负载均衡,曾经各种负载均衡软件和硬件如:LVS、Nginx、F5、HAProxy。曾经在项目中为减少开发量,通过httpclient和proxy实现远程访问服务,既没有服务发现也没有负载均衡,只是单纯的想减少开发工作,这个原始的想法就是后面微服务的原型。现在SpringCloud和Dubbo异常火热,火热劲还未褪去,ServiceMesh已经登上舞台。项目中...

2019-11-20 16:07:59 170

原创 Java并发机制----同步synchronized以及原子操作

Java并发编程过程中必须接触synchronized和volatile,以及后来的读写锁ReadWriteLock、重入锁ReentrantLock等,JVM在编译synchronized时会生成2个指令集monitorenter和monitorexit,volatile则实现1)将当前处理器缓存行的数据写回到系统内存。2)这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效。...

2019-11-19 15:51:24 357

原创 双11续费阿里云之闹心事

每年双十一都是程序员节日,阿里承载着多少程序员的梦想,如此复杂的系统包括海量数据、上亿订单、实时计算,各种公众号。这个时候难免会凑热闹,刚好公司服务器快到期,有优惠券可以使用,满3500减350。一顿操作登录阿里云控制台,找到ECS点击续费,一年4000多,再检查系统配置,这台服务器带宽4M,最近业务压力减少遂调整带宽至1M,调整完后续费,费用计算出现6000多,见了鬼,立马打客服电话,前台客...

2019-11-12 11:02:38 450

原创 架构设计感想

在软件设计中架构域是如何划分的,架构域包括:业务架构、数据架构、产品架构、应用架构、技术架构。在一篇文章中看到关于架构的划分, 同时应该是岗位或者人的职责划分。业务架构在很多企业其实是Boss在做决策时已经定下,后续跟进人员包括业务规划、业务模块、业务流程,对整个系统的业务进行拆分,对领域模型进行设计,把现实的业务转化成抽象对象。这中间包含2个重要因素需要考虑:时间和成本。数据架...

2019-09-19 12:46:17 259

原创 Java线程的状态

线程状态状态名称 说明 NEW 初始状态,线程被构建,但是还没有调用start()方法 RUNNING 运行状态,Java线程将操作系统中的就绪和运行两种状态笼统地称作“运行” BLOCKED 阻塞状态,表示线程阻塞与锁 WAITING 等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或中断)...

2019-08-19 15:39:25 202

原创 JVM指令集整理

最近看《Java并发编程的艺术》,涉及到一些硬件、JVM等知识,结合Java虚拟机知识,整理JVM指令集。JVM基本指令iconst_1 int型常量值1进栈 bipush 将一个byte型常量值推送至栈顶 iload_1 第二个int型局部变量进栈,从0开始计数 istore_1 将栈顶int型数值存入第二个局部变量,从0开始计数 iadd ...

2019-08-15 18:11:36 680

原创 英语时态总结

按照旋元佑语法书总结时态,非常简单,只有简单式和完成式。英文動詞的時態,可以分成現在、過去、未來等三種時間(times) ,簡單式、完成式、進行式、完成進行式等四種狀態(aspects) 。如果再加上主動、被動兩種語態(voices) ,那麼動詞時態變化多達 24 種。扣掉一、兩種很少使用的,實際上經常用到的時態也有 22至 23 種之多。英文動詞的時態,如果認定 be 為動詞,那麼就只...

2019-08-15 12:59:59 1021

原创 一个城市的温度

周六参加朋友的晋升分享会,彼此差不多认识了十年,其中她说苏州是一个有温度的城市,让我联想到自己的过往。读大学前没离开过老家石首,大学四年加上毕业工作三年在武汉,2007年初最后决定来上海工作,40年光景已过。武汉和上海是离开老家居住最长的2个城市,有着不一样的温度。武汉算是自己走上社会的城市,教会自己很多。刚毕业找工作,青涩和内向的性格感觉自己完全没法融入进这个城市,多次碰壁以后找到一份工...

2019-08-12 12:41:36 375

原创 Java中的位操作以及位操作技巧

在C语言学习中位操作是单独拿出来讲的一章,在Java实践中相当少机会使用。位操作基础基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示: & 与运算符、| 或运算符 、~ 取反运算符 、^ 异或运算符、>> 右移运算符、<< 左移运算符、>>>无符号右移运算符 在这6种操作符,只有~取反是单目操作符,...

2019-08-05 16:37:16 453

原创 一致性协议:Zab协议

什么是Zab协议?Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播)。Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性。 Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复 的 原子广播协议 ,是Zookeeper保证数据一致性的核心算法。Zab借鉴了Paxos算法,但又不像Paxos那样...

2019-07-31 12:19:06 354

原创 Java 主流I/O 模型

JAVA 主流I/O模型比较 同步阻塞(BIO) 伪异步IO 非阻塞IO(NIO) 异步IO(AIO) 客户端个数:I/O线程 1:1 M:N(M可以大于N) M:1(1个I/O线程处理多个客户端连接) M:0(不需要启动额外的I/O线程,被动回调) I/O类型(阻塞) 阻塞I/O 阻塞I/O 非阻塞I/O 非阻...

2019-07-30 12:24:36 145

原创 Java IO与NIO 操作

JAVA IO操作从数据来源或者说是操作对象角度看,IO 类可以分为:1、文件(file):FileInputStream、FileOutputStream、FileReader、FileWriter 2、数组([]): 2.1、字节数组(byte[]):ByteArrayInputStream、ByteArrayOutputStream 2.2、字符数组(char[]):Char...

2019-07-29 17:15:05 181

转载 将 IPv6 照进现实,我们需要做些什么?

手机支持双栈吗?IPv6 在相当长一段时间内没能够在公众网中普及,很重要的一个原因就是各方的动力不足,虽然一直在宣传 IPv4 地址不够用了,但缝缝补补还是让互联网走了这么多年。如果抛开动力不足来看,IPv6 的普及其实是一个系统工程,需要的是端、管、云,三方的协同支持,那么我们先看下端,也就是手机的支持情况。首先是苹果 iPhone,对于 v6 苹果早在几年前就强推 APP 对于 IPv...

2019-07-29 10:54:33 284

原创 Druid架构以及数据存储

Druid 的目标是提供一个能够在大数据集上做实时数据摄入与查询的平台,然而对于大多数系统而言,提供数据的快速摄入与提供快速查询是难以同时实现的两个指标。例如对于普通的RDBMS,如果想要获取更快的查询速度,就会因为创建索引而牺牲掉写入的速度,如果想要更快的写入速度,则索引的创建就会受到限制。Druid通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。Drui...

2019-07-23 15:16:55 3370

原创 两阶段提交与三阶段提交介绍

背景XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事务管理器,是因为...

2019-07-22 17:23:45 572

原创 Spring事务的传播机制

事务的传播机制:@Transactional(propagation=Propagation.REQUIRED)如果有事务,那么加入事务,没有的话新建一个(默认情况下)@Transactional(propagation=Propagation.NOT_SUPPORTED)容器不为这个方法开启事务@Transactional(propagation=Propagation.REQU...

2019-07-22 12:26:13 2271

原创 Kafka 安装部署及使用

环境Java:jdk1.8操作系统:CentOSZK:3.4.10Kafka:2.12-2.0.0ZK 安装参考:分布式ZooKeeper-3.4.10集群安装Kafka配置# broker的全局唯一编号,不能重复broker.id=0# 监听listeners=PLAINTEXT://:9092# 日志目录log.dirs=/data/kafka/logs...

2019-07-15 15:09:29 1353

原创 Java集合ArrayList和LinkedList区别

Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口。Java集合大致可以分为Set、List、Queue和Map四种体系,其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表具有映射关系的集合;Queue体系集合,代表一种队列集合实现。jdk1.4以前没有Queue集合,一般用Linked...

2019-07-11 11:53:51 11614 2

原创 MySQL 读提交和重复读隔离级别测试实验

Mysql默认隔离级别可重复读,我们会实验读提交和可重复读。set tx_isolation='read-committed';set tx_isolation='repeatable-read';纸上得来终觉浅,要理解它们必须实践一把,当前读、快照一致性读、MVVC等等这些概念必须在实践中理解。读提交测试实验一:未提交读 mysql>set tx_isolatio...

2019-07-10 13:20:23 911 4

原创 Rocket MQ文章收集

最近参加技术分享会,了解到RocketMQ,在一些大厂对事物要求高的场景中使用RocketMQ。同时,了解到与Kafka之间的一些区别,这在技术选型过程中会有帮助,Kafka在日子收集场景中变成当红炸子鸡,RocketMQ在电商场景中有着天然的优势。Rocketmq详解聊一聊顺序消息(RocketMQ顺序消息的实现机制)RocketMQ高并发读写Rocketmq原理&...

2019-07-08 17:11:44 194

翻译 Data Streaming Fault Tolerance 数据流容错

简介Apache Flink提供了一种容错机制,可以持续恢复数据流应用程序的状态。该机制确保即使存在故障,程序的状态最终也只能反映数据流中的每条记录一次。请注意,有一个开关将保证降级至少一次(如下所述)。容错机制连续地绘制分布式流数据流的快照。对于具有小状态的流应用程序,这些快照非常轻量级,可以频繁绘制,而不会对性能产生太大影响。流应用程序的状态存储在可配置的位置(例如主节点或HDFS)。...

2019-07-02 15:34:56 306

翻译 Flink与kafka端到端完全一次语义概述

这篇文章改编自2017年Flink Forward柏林的Piotr Nowojski的演讲。您可以在Flink Forward Berlin网站上找到幻灯片和演示文稿。2017年12月发布的Apache Flink 1.4.0为Flink引入了一个重要的流程处理里程碑:一个名为TwoPhaseCommitSinkFunction的新功能(此处为相关的Jira),它提取了两阶段提交协议的通用逻辑...

2019-07-01 18:23:18 844

翻译 What is Apache Flink? — Applications(Flink应用程序)

Apache Flink is a framework for stateful computations over unbounded and bounded data streams. Flink provides multiple APIs at different levels of abstraction and offers dedicated libraries for commo...

2019-07-01 15:34:15 248

翻译 What is Apache Flink? — Architecture(Flink架构)

Apache Flink is a framework and distributed processing engine for stateful computations overunbounded and boundeddata streams. Flink has been designed to run inall common cluster environments, per...

2019-07-01 14:24:58 336

转载 Apache Flink 零基础入门(二):DataStream API 编程

我们在系列文章第一篇已经为大家介绍了Flink 的基本概念以及安装部署的过程,希望能够帮助读者建立起对 Flink 的初步印象。接下来将进入第二部分,即 Flink 实际开发的相关内容。本文重点介绍 Flink 开发中比较核心的 DataStream API 。我们首先将回顾分布式流处理的一些基本概念,这些概念对于理解实际的 DataStream API 有非常大的作用。然后,我们将详细介绍 ...

2019-06-28 10:51:19 1159

原创 TCP/IP网络协议总结

学习TCP-IP详解一段时间,还有不少疑惑,总结记录一番,说不定有新发现。总听人说5G网络下一部电影只需要几秒钟,疑惑的很我们普遍网络使用以太网,通过光纤或者网线连接,其数据封装格式依据IEEE 802规范,属于链路层数据规范,基于RFC 894 定义以太网封装格式。5G应该是在链路层有很大的改进,所以主干网需要扩容,可以理解我们家的网线或者网卡都要换一换。也可以理解,以前的乡村小道可能...

2019-06-27 18:02:11 816 1

原创 TCP包的seq和ack号计算方法

序号(seq)用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP用序号对每个字节进行计数。序号是32bit的无符号数,序号到达232-1后又从0开始。当建立一个新的连接时,SYN标志变1。序号字段包含由这个主机选择的该连接的初始序号ISN(InitialSequenceNumber)。该主机要发送数...

2019-06-26 17:37:16 46237 5

BPMN 图,完整的BMPN元素图,可以学习

完整的BMPN元素图,需要了解流程引擎的可以看看

2023-12-12

CP210x-Universal-Windows-Driver 驱动

NRF52832 CP210 usb驱动

2023-05-29

Linux 内核升级

docker-ce 要求overlay模块,但是系统内核是3.10没有该模块,所以升级内核试试

2018-10-15

阿里巴巴Java开发手册

java 规范,团队合作必须要学习

2017-03-14

架构漫谈PDF

架构就是解决人的问题

2017-02-08

阿里开源Mysql分布式中间件:Cobar

cobar Solution 中间件PPT

2016-08-29

深入理解Android之Gradle

深入理解Android之Gradle,groovy语法,编译、打包

2016-01-07

SOA分布式事务

互联网SOA逃脱不了,引来事务的问题,看看分布式事务的思路文档

2015-12-03

dubbo 分布式服务框架

Dubbo分布式服务框架 于飞PPT 最近一直在学习dubbo,对整理框架有一个基本认识,后期还是需要自己钻研

2015-12-03

redmine mylyn 配置

eclipse redmine mylyn 配置,自动推送任务

2014-12-29

SVN使用手册

svn操作手册,很实用 对使用svn的同学都很实用,百度上需要积分下载的

2014-11-03

Redmine及SVN在项目管理中应用

Redmine及SVN在项目管理中应用,bug流程基本管理

2014-09-11

redmine整合eclipse

工具整合,提高开发效率,bug流程跟踪,源代码整合

2014-09-01

Scrum中文指南

敏捷开发 scrum迭代开发,为项目管理准备

2014-06-30

mongodb pdf

mongodb 官方文档,最近学习使用,学习不少知识

2011-03-23

db2常用函数 我没有分赚点分下资料

喜欢db2的可以看看 我没有分赚点分下资料 谢谢

2009-05-11

空空如也

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

TA关注的人

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