自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hcode4的博客

Studying

  • 博客(49)
  • 收藏
  • 关注

原创 抛弃BeanUnits.copyProperties三部曲

Java复制

2022-08-01 22:11:42 220 2

原创 HR面试简要

HR面试应对策略

2022-06-20 15:08:12 107

原创 Kafka内容总结

架构为什么这么快如何保证消息有序reblance索引与MQ区别如何保证数据不丢失CA

2022-05-22 14:55:45 138

原创 Kafka内容总结

架构为什么这么快如何保证消息有序reblance索引与MQ区别如何保证数据不丢失CA

2022-05-22 14:54:52 106

原创 什么是幂等?幂等如何解决

定义所谓幂等,就是任意多次执行所产生的影响均与一次执行的影响相同风险一次操作因重试导致生效两次,如库存扣减,钱结算等如何避免全局ID分配分配中心,统一分配由业务服务集群UUIDSnowflake...

2022-05-22 14:51:46 182

原创 工作经验分享-vivo链路监控

0.监控1.监控系统:一个监控系统应该至少有三类输出:紧急警报,工单,日志2.为了更好的满足用户的需求,我们搭建了一套一体化监控系统,从硬件,网络,服务,应用全覆盖链路监控1.紧急警报1.检测中心:配置检测规则(自配/统一)进行检测2.告警中心:对异常信息进行分发/收敛到具体用户3.智能预警能力(研发中):根据历史记录发生异常趋势快速通知用户避免异常问题发生2....

2021-06-06 10:21:41 588 3

原创 对象的一生

对象诞生加载加载时机使用new关键字实例化对象使用reflect方法对类型进行反射调用时候处理静态字段,静态方法含main主类会加载MethodHandle解析结果为get/put/invoke/ newInvoke special四种类型方法句柄接口加入默认方法,实现主类初始化,接口需要先进行初始化子类初始化,父类需要先初始化加载过程加载验证准备解析初始化分配内存根据不同的算法收集器决定使用不同的内存分配方式1.1 如果使用Serial,.

2021-03-31 22:54:18 98

原创 MYSQL架构

connection Pool(线程池)1.1 功能Authentication: 认证Thread Reuse: 线程重用Connection Limits: 连接数量限制Check Memory: 检测内存(连接线程相关的内存)caches:必要的线程缓存Mysql是一个单进程多线程的应用,当用户通过Connetor向Mysql Server 发起请求连接时,通过线程池(Connection Pool)建立一个用户连接,此连接会话将会一直存在,用户可以通过此会话,发对应的SQL语..

2021-03-25 23:30:49 142 1

原创 MyBatis 常用数据库引擎

对比 MYISAM InnoDB 主外键 不支持 支持 事务 不支持 支持(ACID) 行表锁 表锁,只操作一条数据也会锁表,不适合高并发 行锁(如果不确定范围会表锁),操作时只锁某一行,不对其他操作有影响,适合高并发 缓存 只缓存索引不缓存真实数据 缓存索引与真实数据,对内存性能要要求较高,且内存对性能有决定性影响 表空间 小 大 关注点 性能 事务 形式 保存文件形式 ...

2021-02-15 15:58:56 797

原创 面对对象之间关系

依赖关系1.1 通过形参的方式发生依赖关系1.2 通过局部变量发生依赖关系1.3 通过静态变量发生依赖关系关联关系 康康 —> 李娜(朋友)2.1 单向关联: 类A当中使用了类B, 其中类B是作为A的成员变量2.2 双向关联:类A当中使用了类B,类B也使用了类A作为成员变量聚合关系(聚合关系中作为成员变量的类一般使用Set方法赋值)人群<> ——> 人3.1 聚合关系是关联关系的一种,耦合度强于关联,他们之间代码表现是相同的,仅仅是在语意上有所区别。关联关系的对象之.

2021-02-08 15:15:22 131

原创 单例模式-枚举类实现

public class SingletonObject { private SingletonObject(){ } /** * 枚举类型是线程安全的,并且只会装载一次 */ private enum Singleton{ INSTANCE; private final SingletonObject instance; S.

2020-11-23 11:44:16 171

原创 2020-10-14

swagger 3.0 更新原始版本 2.9.0更新后版本 3.0.02.1 删除原始版本mvn 依赖<!-- <dependency>--> <!-- <groupId>io.springfox</groupId>--> <!-- <artifactId>springfox-swagger2</artifactId>-->

2020-10-14 18:08:34 74

原创 Gossip

Gossip流言算法,疫情传播算法执行过程由种子节点发起,当一个种子节点有状态需要更新到网络中其他节点,他会随机选择周边几个节点散播消息,收到消息到节点重复此过程,直至网络中所有节点都收到消息在过程中的某个时刻不能保证所有节点都收到消息,到那时理论上最终所有节点都会收到消息,属于最终一致性协议gossip 优点扩展性 >...

2020-09-24 15:37:48 137

原创 CALM

CALM当认为分布式一致性被认为很容易实现协调是相关程序设计决策的附带要求,但是协调存在成本calm理论支持在某些情况下可以去协调,提高性能从操作满足交换律则可以不进行协调calm 的关键观点是从程序结果的角度观察一致性,而不是传统的存储突变历史。...

2020-09-24 15:37:16 224

原创 BASE

BaseBase 理论是Basically Available(基本可用),Soft State(软状态)和Eventually Consistent(最终一致性)既是无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当但方式使系统达到最终的一致性基本可用响应时间上的损失:正常情况下的搜索引擎0.5 秒即返回给用户结果,而基本可以用的搜索引擎可以在2秒作用返回结果功能上的损失: 功能降级返回结果软状态允许系统中的数据存在中间状态,并认

2020-09-24 15:36:45 123

原创 DLS

DLS在一个部分同步的网络模型(网络有延迟,但不知道在哪里)下的协议可以容忍1/3(拜占庭)任意错误在一个异步模型中的确定性协议(没有网络延迟上限)不能容错同步模型的协议(网络延迟可以保证小于已知时间)可以达到100%容错...

2020-09-24 15:36:11 344

原创 FLP 定理

FLP 定理在异步通信场景,即使只有一个进程失败了,没有任何算法能够保证进程能够达到一致性系统模型系统模型1.1 异步通信 > 异步通信与同步通信最大区别是没有时钟,不能时间同步,不能使用超时,不能探测失败,消息可任意延迟,消息可乱序1.2 通信健壮 > 只要进程非失败,消息虽会被无限延迟,但最终会被送达,且消息只会被送达一次(无重复)1.3 Fail-Stop模型 > 进程失败如同宕机,不再处理任何消息。相对Byzantine模型,不会产生错误消息;1.4 协议约束

2020-09-24 15:35:39 684

原创 CAP

CAPConsistency -> 一旦数据更新完毕,分布式系统中所有节点在同一时间的数据完全一致1.1 数据同步会有数据延迟1.2 为了保证数据一致性,会对资源进行上锁,待数据同步完成后释放锁定资源1.3 如果数据同步失败,节点会返回错误信息,不会返回旧数据可用性(Availability)2.1 所有请求都有响应,不能返回响应超时或者响应错误分区容错性(Partition tolerance)3.1 分布式系统中,尽管部分节点出现任何消息丢失或者故障,系统应该继续运行...

2020-09-24 15:35:06 76

原创 ACID

ACID事务1.1 提供一种机制将一个活动涉及的所有操作都纳入一个不可分割都执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方可提交,只要其中任一操作执行失败,都将导致整个事务都回滚ACID2.1 数据库事务的ACID2.1.1 原子性 > 整个事务的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节2.1.2 一致性 > 在事务开始和事务结束以后,数据库的一致性约束没有被破坏2.1.3 隔离性 > 数据库允许多个并发事务同时对数据进行读写和修

2020-09-24 15:34:34 99

原创 时间与顺序

时间与顺序物理时钟与逻辑时钟分布式系统中每个节点记录时间不一样,即便设置NTP时间同步,节点间也存在毫秒级的偏差,由此产生了逻辑时钟,记录时间发生顺序分布式系统中按是否存在节点交互可拆分三类事件,一类发生节点内部,二是发生事件,三是接受事件逻辑时钟(Lamport timestamps, Vector clock)3.1 逻辑时钟前进3.1.1 每个事件对应一个逻辑时间戳,初始值为03.1.2 如果事件发生节点内发生,时间戳加13.1.3 如果事件属于发送事件,时间戳加1并在消息中带上该时

2020-09-24 15:34:06 441

原创 分布式网络

分布式网络什么是分布式网络分布式网络也叫网状网络,它是有分布在不同地点的计算机系统连接而成,网中无中心节点。通信子网是封闭式结构通信控制功能分布在各节点上分布式网络特点特点1.1 可靠性高,网内节点共享资源容易;1.2 可改善线路的信息流量分配1.3 可选择最佳路径,传输时延小1.4 控制复杂1.5 软件复杂1.6 线路费用高,不易扩充种类2.1 总线型2.2 环形2.3 星形2.4 树形...

2020-09-24 15:33:24 2225

原创 CAP含义应用

CAP 含义应用三个指标ConsistencyAvailabilityPartition tolerancePartition tolerance(分区容错性)大多数分布式系统分布在多个子网络,每个子网络叫做一个区。分区容错性代表区间通信可能失败。分区容错性无法避免,需要在C和A之间进行选择Consistency不能分区需要保持数据一致性Availability用户发起请求需要得到回应Consistency 和Availability矛盾不可能同时成立,因为可能存

2020-08-02 11:05:29 190

原创 《一个女人24小时》读后感

简介《一个女人的24小时》是由一场不知道事情始末的风月事件引出一个完整故事的一本书。这场风月事件主要是一个有身份有地方的妇人跟一个很年轻,有活力的年轻人跑了。完整的故事脉络与之类似,也是一个妇人,被一个年轻人深深吸引,想和他流浪天涯的故事。妇人,40岁,丧夫第二年,从第一年后就开始各处旅游,因为丈夫的影响有着在赌坊看别人赌博的爱好。在赌场里碰到一个具有活力的年轻男子。男子具有魔力的双手吸引了妇人,但因为输光了所有钱财,有了自杀的念头。妇人希望挽救这位富有年轻的男子,要将他安置在宾馆里,并让他离开

2020-07-25 11:35:18 438

原创 《斯坦福高效睡眠法》笔记

只要“最初90分钟”的睡眠质量得到了保证,剩余时间的睡眠质量也会相应变得更好。睡的多不应定睡得好你陷入睡眠负债地狱了吗睡眠负债会使人出现大脑休眠状态,虽然可能只持续几秒,这是一种大脑防御机制遗传基因决定理想多睡眠时间...

2020-07-19 18:41:35 715

原创 “《有话说》--崔永元” 笔记

有尴尬,别扛着难的不是尴尬本身,而是我们对尴尬放大之后的担心和焦虑。错也不在尴尬本身,而是我们以为没了尴尬这个世界会更好。但有时候,反而是尴尬让我们看到这个世界的真。别太把自己当回事为什么总让别人适应你的世界人活着本身就是 一个慢慢放下自己的过程,不是吗?然后慢慢学习,学习该如何在内心 深处对自我进行安置,如何和自己、和他人,也和这个世界好好相处先听,好好听它的要求 更高,需要你听一句能说十句,或者听十句就能总结出一句。听明白 了,才能想明白首先,听的时候需要一个放空自己的心态,

2020-07-14 22:58:39 476

原创 SpringBoot异步操作

异步方法import lombok.extern.slf4j.Slf4j;import org.springframework.scheduling.annotation.Async;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.stereotype.Com...

2020-01-16 22:29:26 149

原创 Redis故障

Redis故障雪崩Redis大面积出现失效如过期,导致压力全放在Mysql,导致对Mysql 降维打击,多米诺骨牌效应,导致其他接口也会崩坍,重启也会出现同样情况解决方法设置随机过期时间,设置永不过期热点数据放在不同集群击穿一个非常热的点,不断请求,突然失效,降维打击DB解决方式网关Nginx某个IP访问过高,拉黑热点数据永不过期加互斥锁穿透...

2020-01-05 11:57:03 241

原创 Java 多线程技能

使用多线程extends Threadnew MyThread()implements Runnablenew Thread(new MyRunnable)共享变量使用synchronized 进行加锁api汇总currentThread()当前的线程isAlive()判断线程是否存活sleep线程休眠gitId()获取当前线程...

2019-12-29 22:19:02 97

原创 Java—可变参数

要求/** * 功能描述 * 1. 可变参数最多有一个,放在参数最后 * 2. 可变参数使用 Type ... parameterName 表示 * 3. arr 可以为 0 - n 个数值 * 4. Integer ...arr 与 Integer []arr 具有相同意义 * * @Author: Yuanzhi Hu...

2019-10-20 16:25:33 132

原创 使用Redis锁

使用Redis锁配置redisClient 获取redis集群地址 Config config = new Config();Config.useCluterServices().addNodeAddress(nodeArr);return Redis.create(config);redissonClient 使用Rlock rlock = redissonClien...

2019-09-28 22:58:03 317

原创 SpringBoot定时任务

SpringBoot定时任务通过注解的方式进行配置@Scheduled(fixedRate = 毫秒数)通过配置文件实现定时任务 < bean id= "" class ="org.Springframework.scheduling.concuttent.ThreadPoolTaskExecutor"/> < property name = "cor...

2019-09-28 22:49:09 566

原创 SSO单点登录

Green Trainsso 单点登录同域下的单点登录Cookie 的域设置为顶级域不同域下的单点登录用户访问app2系统,app2系统没有登录,跳转到SSO。由于SSO已经登录了,不需要重新登录认证。SSO生成ST,浏览器跳转到app2系统,并将ST作为参数传递给app2。app2拿到ST,后台访问SSO,验证ST是否有效。验证成功后,app2将登录状态写入sess...

2019-09-14 16:00:37 220

原创 SRE Google运维解密 第11章 on-call轮值

on-call轮值保证可以随时相应紧急问题,不管工作时间还是非工作时间on-call 工程师的一天on-call工程师承诺在分钟级别执行生产系统的维护需求,一般面向终端用户5分钟,非紧急30分钟。响应时间与业务可靠性有关收到报警信息,工程师必须ack,on-call 工程师即使定位并尝试解决问题,或可联系其他团队,或者升级请求支援有主on-call 和副on-call ,相辅相成...

2019-09-14 15:09:52 1125

原创 SRE Google运维解密——第10章 基于时间序列数据进行有效报警

第10章 基于时间序列数据进行有效报警一个大型的系统不应该要求运维人员持续关注其中使用的无数个小组件,而是应该汇总所有的信息,自动抛弃其中的异常情况。监控系统应该从高级服务质量目标层次进行报警,但是也应该保持足够的力度,可以追踪到某个具体组件Borgmon 的起源依靠一种标准数据分析模型进行报警。使得批量,大规模,低成本的数据收集变得可能 ,成为白盒监控报警规则使用简单的数学表...

2019-09-14 10:45:44 640

原创 SRE Google运维解密——第9章 简单化

第9章 简单化系统的稳定性与灵活性通过流程,实践以及工具,来提高软件的可靠性SRE最小化路程对于开发人员的灵活性造成的影响可靠的流程会提高研发人员的灵活性乏味是一种美德负责的系统不引入意外复杂度不断努力消除正在接手的和已经负责运维的系统的复杂度我绝对不放弃我的代码清除多余的代码负代码行 作为一个指标删除没有用的代码,保持代码整洁简单最小api提供...

2019-09-10 23:13:45 253

原创 SRE Google运维解密——第8章 发布工程

第8章 发布工程发布工程与产品研发部门的软件工程师,以及SRE一起定义发布软件的过程的全部步骤——包括软件是如何存储于源代码仓库中,构建时如何进行测试,打包,最终部署的发布工程师角色开发软件,为Google 提供各种数据(代码修改提交部署到生产环境一共需要多长时间)。定义最佳实践保障软件项目可以一致的,可重复的进行发布。发布工程哲学自服务模型每个团队可以决定多久或者什...

2019-09-08 16:14:37 451

原创 SRE Google运维解密——第7章 Google的自动化系统的演进

第7章 Google的自动化系统的演进==================================================================自动化 与GoogleSRE 联系自动化价值一致性可以准确执行重复可能出错的命令或者行为平台性可以搭建一个可扩展的平台,解放运维修复速度更快对于出错的处理更好的指定修复行动速度更快...

2019-09-07 17:47:37 537

原创 在服务器上配置数据库

配置centosmysql过程rpm -qa | grep mysql 查看是否已经安装mysql ,没安装跳转到第二步1.1 rpm -e mysql //卸载mysql 下载 wget http://dev.mysql.com/get/mysql57-community-release-el6-10.noarch.rpm yum insta...

2019-08-25 00:44:58 1081

原创 使用Python删除目录下重复图片

方法判断文件大小是否相同判断md5是否相同步骤获得目录下所有文件for root,dirs,files in os.walk(path): for file in files: real_path = os.path.join(root,file)获得文件大小 size = os.stat(real_path).st_size...

2019-06-10 20:55:53 815

原创 Window10 && Ubuntu18.04 双系统安装后,使用EasyBCD 进入Grub 界面 问题解决。

    安装双系统之后没有Ubuntu18.04的系统入口。查网络教程之后使用EasyBCD 进行入口修复,具体方法自行百度。操作完成后只能进入grub 命令行界面。那么恭喜你,成功踩中了万千坑中的一个。下面是填坑的过程。    使用U盘启动Ubuntu18.04系统,刚开始如何装的就如何进入。到了安装界面选中 &lt;try Ubuntu&gt; 进入系统。打开终端。 输入sudo ...

2019-02-14 16:26:59 2725

空空如也

空空如也

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

TA关注的人

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