- 博客(90)
- 收藏
- 关注
原创 Web APIs
Web API基本认知变量声明作用和分类什么是DOMDOM树DOM对象(重要)获取DOM对象根据CSS选择器来获取DOM元素 (重点)其他获取DOM元素方法(了解)操作元素内容操作元素属性操作元素常用属性操作元素样式属性操作表单元素 属性DOM事件基础事件监听(绑定)事件监听事件监听版本事件类型事件对象获取事件对象事件对象常用属性环境对象回调函数事件流事件流和两个阶段说明时
2023-06-21 17:27:37
170
原创 JavaScript基础笔记
JavaScript 介绍JavaScript 是什么1JavaScript 书写位置JavaScript 注释JavaScript 结束符JavaScript 输入输出语法变量变量是什么?变量的基本使用变量的本质变量命名规则与规范数组的基本使用常量数据类型数据类型 – 数字类型(Number)数据类型 – 字符串类型(string)数据类型 – 布尔类型(boolean)数据类型 – 未定义类型(
2023-06-19 17:21:09
488
原创 CSS2学习笔记
CSS的全称为:层叠样式表 (CSS 也是一种标记语言,用于给 HTML 结构设置样式,例如:文字大小、颜色、元素宽高等等。简单理解: CSS 可以美化 HTML , 让 HTML 更漂亮。核心思想: HTML 搭建结构, CSS 添加样式,实现了:结构与样式的分离。作用:选中同时符合多个条件的元素。语法:选择器1选择器2选择器3…选择器n {}/* 选中:类名为beauty的p元素,为此种写法用的非常多!!!!
2023-06-09 18:13:35
1144
原创 HTML4
概念:所谓自定义列表,就是一个包含术语名称以及术语描述的列表。一个 dl 就是一个自定义列表,一个 dt 就是一个术语名称,一个 dd 就是术语描述(可以有多个)。< h2 > 如何高效的学习?
2023-06-08 16:25:36
797
原创 01 云原生生态系统解读
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API(配置文件、请求、可视化操作…)。云上配置文件这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
2023-06-05 15:44:29
699
原创 10 缓存双写一致性之更新策略探讨
如果redis中有数据:需要和数据库中的值相同如果redis中无数据:数据库中的值要是最新值请求A进行写操作,删除缓存后,工作正在进行中…A还么有彻底更新完请求B开工,查询redis发现缓存不存在请求B继续,去数据库查询得到了myslq中的旧值请求B将旧值写入redis缓存请求A将新值写入mysql数据库上述情况就会导致不一致的情形出现。如果数据库更新失败,导致B线程请求再次访问缓存时,发现redis里面没数据,缓存缺失,再去读取mysql时,从数据库中读取到旧值。
2023-06-05 10:17:13
574
1
原创 09 Redis与MySQL数据双写一致性工程落地案例
MySQL的主从复制将经过如下步骤:开启 MySQL的binlog写入功能授权canal连接MySQL账号mysql默认的用户在mysql库的user表里默认没有canal账户,此处新建+授权canal服务端下载解压后整体放入/mycanal路径下配置修改/mycanal/canal.deployer-1.1.5/conf/example路径下instance.properties换成自己的在mysql新建的canal账户建module改pom写YML主启动业务
2023-06-04 17:56:50
410
原创 08 redis经典五种数据类型及底层实现
int保存long 型(长整型)的64位(8个字节)有符号整数只有整数才会使用 int,如果是浮点数, Redis 内部其实先将浮点数转化为字符串值,然后再保存。embstr代表 embstr 格式的 SDS(Simple Dynamic String 简单动态字符串),保存长度小于44字节的字符串EMBSTR 顾名思义即:embedded string,表示嵌入式的Stringraw保存长度大于44字节的字符串。
2023-06-03 22:49:11
559
原创 07 Redis的缓存过期淘汰策略
定期删除策略的难点是确定删除操作执行的时长和频率:如果删除操作执行得太频繁,或者执行的时间太长,定期删除策略就会退化成立即删除策略,以至于将CPU时间过多地消耗在删除过期键上面。如果删除操作执行得太少,或者执行的时间太短,定期删除策略又会和惰性删除束略一样,出现浪费内存的情况。因此,如果采用定期删除策略的话,服务器必须根据情况,因此,如果只采用定期删除策略,会导致很多key到时间没有删除。周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度。
2023-06-02 18:13:45
608
原创 06 Redis分布式锁
**} }synchronized单机版OK,上分布式nginx分布式微服务,单机锁不行/(ㄒoㄒ)/~~取消单机锁,上redis分布式锁setnx只加了锁,没有释放锁,出异常的话,可能无法释放锁,必须要在代码层面finally释放锁宕机了,部署了微服务代码层面根本没有走到finally这块,没办法保证解锁,这个key没有被删除,需要有lockKey的过期时间设定为redis的分布式锁key,增加过期时间。
2023-06-02 17:44:18
683
原创 05 缓存预热+缓存雪崩+缓存击穿+缓存穿透
是什么危害建Module:bloomfilter_demo改POM写YML主启动业务类布隆过滤器说明方案3:Redis布隆过滤器解决缓存穿透Guava缺点说明:Guava 提供的布隆过滤器的实现还是很不错的 (想要详细了解的可以看一下它的源码实现),但是它有一个重大的缺陷就是只能单机使用 ,而现在互联网一般都是分布式的场景。案例:白名单过滤器白名单架构说明误判问题,但是概率小可以接受,不能从布隆过滤器删除全部合法的key都需要放入过滤器+redis里面,不然数据就
2023-05-31 18:19:53
663
原创 04 布隆过滤器BloomFilter
使用时最好不要让实际元素数量远大于初始化数量当实际元素数量超过初始化数量时,应该对布隆过滤器进行重建,重新分配一个 size 更大的过滤器,再将所有的历史元素批量 add 进行。
2023-05-31 11:50:31
561
原创 03 redis新类型bitmap/hyperloglgo/GEO
如果统计10000个对象样本(1w个亿级),就需要117.1875G将近120G,可见使用bitmaps还是不适用大数据量下(亿级)的基数计数场景,基数计数则将每一个元素对应到bit数组中的其中一位,比如bit数组010010101(按照从零开始下标,有的就是1、4、6、8)。如果要统计1亿个数据的基数位值,大约需要内存100000000/8/1024/1024约等于12M,内存减少占用的效果显著。新进入的元素只需要将已经有的bit数组和新加入的元素进行按位或计算就行。但是bitmaps方法是精确计算的。
2023-05-30 18:21:08
910
原创 01Redis单线程 VS 多线程
Redis自身出道就是优秀,基于内存操作、数据结构简单、多路复用和非阻塞 I/O、避免了不必要的线程上下文切换等特性,在单线程的环境下依然很快;但对于大数据的 key 删除还是卡顿厉害,因此在 Redis 4.0 引入了多线程unlink key/flushall async 等命令,主要用于 Redis 数据的异步删除;
2023-05-29 17:20:01
618
原创 19-01 技术选型的道与术
根据实际业务管理的需要,对硬件、软件以及所要用到的技术进行规格的选择狭义上的技术选型:团队决定选用哪种技术去解决问题,比如选用某个技术语言、某个技术框架去开发项目广义上的技术选型:泛指项目实施过程中的各种技术决策制定了技术方案A & B,选择其中一套每个技术决策都是技术选型。
2023-05-23 18:21:36
551
原创 00 Java架构师系列导航目录
架构设计模式01 架构设计模式导航与分层架构初始认知02 分层架构模式(Layered Arch)03 事件驱动架构模式(Event driven Arch)04 微内核架构(可扩展)模式05 生产者消费者模式架构设计评估01 如何评估服务性能02 系统测试与调优指标03 如何评估系统容量04 如何评估架构设计的前瞻能力分布式架构理论01 分布式系统理论02 底层数据设计策略 - 分库分表,热点热数据隔离03 底层数据设计策略 - 高可用数据04 中间件和平台运
2023-05-22 18:12:18
492
原创 18-04 数据库分布式架构
Spring的MySQLMaxValueIncrementer。优点:取得号段之后,不再强依赖数据库。缺点:趋势递增的,而非单调递增。
2023-05-22 17:41:53
606
原创 18-03 MySQL高可用方案与选择
主从复制读写分离流程原理 bin logSTATEMENT优点:记录的是执行的SQL,比较省空间,降低了主从复制时的IO开销缺点:由于记录的是SQL,所以MySQL多个节点之间复制的时候,特定场景下会导致数据不一致的情况ROW优点:记录的是每条数据的变化,内容比较容易理解,不会有多个节点数据不一致的问题缺点:由于记录的是每行数据的变化,所以占用的空间较大,特别是对于字段较多的表的操作、大批量操作来说MIXED两种模式的结合MySQL会根据执行的具体SQL自动
2023-05-22 16:16:36
680
原创 18-02 数据库设计核心要点
结论2:执行成功,latin1字符集的varchar字段可以存储加密后的数据,varbinary、binary、blob可以存储加密后的数据(基于二进制存储)结论1:添加数据操作执行失败,因为utf-8字符集的varchar字段无法存储加密后的数据。对于无法解密的数据,aes_decrypt会直接返回null。方案1:用hex()转16进制存储。方案2:转base64存储。
2023-05-22 15:16:03
780
原创 18-01 数据库架构设计综述
数据库架构设计的基本思路需求分析阶段(最困难、最耗时)整个设计过程的基础需求分析做得是否充分以及准确,决定了数据库设计的速度与质量极端场景下,需求分析做得不好,可能会导致整个数据库设计返工、重做需求分析目标了解系统的工作情况明确用户的各种需求在此基础上确定新系统的功能明确信息要求、数据要求、处理要求、安全性要求调查用户需求的步骤调查用户需求的方法开调查会跟班作业请专人介绍调查表查阅记录每种方式都需要用户的参与和配合分析用户需求结构化
2023-05-19 13:53:04
524
原创 16-02 云原生应用
弹性思考无状态进程同步并发解耦思考配置和密码分离后台服务端口绑定中台思考日志流多节点汇聚多维度分析大流量处理、归档、备份标准输出 + 不代理、不保存、不处理管理作业认证授权监控遥测健康性能追踪API经济中台思维Mobile First服务合同SLA云原生最高境界:IaaS -> PaaS -> SaaS
2023-05-19 11:13:04
50
原创 16-01 云平台分类和思考
云环境的分类混合云为什么选择混合云混合云网络互联入口层分流CDN内容分发网络CDN工作原理Captcha图灵测试SLB软件负载均衡器SDN:软件定义网络网络层次:通用网络(2-4层)和HTTP(5-7层)多种实现:通用网络(LVS/F5-LTM/HAProxy)、HTTP(Nginx/Tengine/F5-LTM/HAProxy)Nginx反向代理安全防御系统层安全入侵检测病毒查杀漏洞智能修复网页防篡改基线一键检查潜在安全风险网络层安全DD
2023-05-19 10:49:21
419
原创 15-03 软件安全
系统安全系统安全威胁病毒蠕虫特洛伊木马Rootkit后门僵尸网络零日攻击Webshell操作系统防御杀毒软件:兵来将挡,水来土掩升级补丁:防止零日攻击限制:用户、网络、端口、程序、安全基准、不可变基础架构杀毒软件检测机制特征型:模式匹配、指纹检测启发型:逻辑评估、人工智能、防止零日攻击完整性检查:通过CRC校验确认文件的完整性行为阻止:执行代码,监控它和操作系统的交互免疫系统:把自己变得像是已经被感染,博取同情沙箱运行:限制病毒和可疑代码的影响数据库安全
2023-05-18 17:24:38
546
原创 15-02 身份安全
授权码模式:完整、严密,第三方认证和授权的最主流实现。密码模式:王者荣耀瘾君子、用户名密码都给你也无妨。简化模式:令牌用户可见,移动端的常用实现手段。客户端模式:王者荣耀开发团队、用户就是客户端。
2023-05-18 15:33:43
711
原创 15-01通信安全
网络设备安全——防火墙状态检测应用级代理防火墙实战默认禁止:Ingress和Egress高安全域优先:允许高安全域发起请求规则具体:源地址(标签)、源端口,目标地址(标签)、目标端口、通信协议(TCP、UDP、ICMP)、方向(Ingress、Egress)网络设备安全——CDN内容分发网络网络攻击Dos拒绝服务攻击畸形数据包:如超长ICMP、泪滴攻击泛洪攻击:SYN泛洪、DHCP泛洪、ARP泛洪、UDP泛洪分布式DDoS:僵尸网络、肉鸡攻击DNS缓存投毒和劫持
2023-05-18 10:24:50
294
原创 10-03 单元化架构设计
设计原则透明对开发者透明在做实现时,不依赖于单元划分和部署对组件透明在组件运行时,不感知其承载单元对数据透明数据库并不知道为哪个单元提供服务业务可分片系统业务复杂度足够高系统可以按照某一维度进行切分系统数据必须可以被区分业务自包含同一业务功能必须在单元内完成同一业务操作所需数据也在该功能单元内尽量避免跨单元依赖单元化设计三要素系统切分业务切分DDD切分领域服务、数据和业务流程切分出的服务和数据属于同一单元出现交集(重叠)时,以单元间访问量做决策指标
2023-05-17 15:40:45
765
原创 10-02 单元化架构核心问题与概念
组件时单元化架构里最小的原子单位一个组件就是代表一组业务功能或服务组件自定义范围和形态,在其定义域内独立运行组件依赖于其他组件,也可以被其他组件依赖。
2023-05-17 11:52:32
542
原创 10-01 单元化架构基础
扩展性(Scalability)高伸缩性添加资源就可以应对处理能力需求的增长用户、流量、数据增长,性能指标不下降度量增加系统处理能力的指标系统性能延迟:系统处理单词请求所需的时间吞吐量:单位时间内系统处理次数伸缩性&性能&成本等综合结果伸缩性差单用户性能正常用户增长后性能指标下降性能提升的成本高横向扩展(Horizontal Scale)Scale out增加更多机器,提高系统整体性能和处理能力分布式架构理论上可以无限扩展经济成本
2023-05-16 17:04:30
368
原创 09-03 服务监控和调用链梳理
业务埋点的技术选型方向淘系用户画像的业务目标业务埋点三板斧后台业务埋点业务埋点:在业务流程中添加埋点代码注解埋点:利用SPring的AOP机制可视化埋点无痕埋点项目中怎么选链路监控中的离群点分析微服务间的链路梳理
2023-05-16 16:32:23
51
原创 09-02 如何统一管理配置信息
为什么需要统一配置管理中心架构选型层面如何考量配置中心的高可用拒绝单点主从、集群服务治理配置服务也是一种服务本地文件备份和全局ID发号器相同思想:比如生成订单编号,先从服务器申请一批,然后缓存在本地,高并发场景下一个一个往外发放,减少和数据库的交互次数,等到用完了再申请一批。要想做到高可用,就需要假设任何一环都不可靠,提高总体的可用性。
2023-05-16 11:57:16
111
原创 09-01 微服务与服务建模
微服务架构设计核心微服务服务治理服务生命周期主链路规划网络层搭建配置管理服务监控和调用链梳理业务埋点无痕埋点用户画像采集离散点分析调用链梳理微服务的服务治理服务注册服务发现服务续约、心跳注册中心剔除服务服务自主下线淘系下单场景的主链路案例分享用户流量漏斗模型
2023-05-16 11:31:42
58
原创 08-05 应用层设计
既然使用缓存,那就肯定会存在缓存数据和DB数据不一致的问题,只是不一致时间长短的问题。DNS服务器将访问的域名转发到对应的网关,网关层做反向代理。经过一段时间使用后,发现一些潜在的Bug。适合用消息组件解耦的场景。
2023-05-15 15:17:12
571
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人