转载all-in-one

数据库事务类 

  • 数据库锁、软件锁、事务并发、数据库隔离级别、jdbc事务控制、hibernate事务控制等等

        Hibernate 事务和并发控制 - fysola - 博客园
        https://www.cnblogs.com/fysola/p/6344589.html

代码分层类

封层结果的发展史、各种层结构及优劣势:包括MVC、DDD、分层守护工具等

请倒序查看(为了自己方便,把自己认为最可落地的放在了最上面,基础性理论放在了最下面)

分层

  • 使用 ArchUnit 守护分层架构 - 知乎

        https://zhuanlan.zhihu.com/p/464190153

  • 领域驱动设计(DDD):项目目录(包、模块)结构 - 知乎

        https://zhuanlan.zhihu.com/p/315675171

  • DDD 分层架构 - 知乎

        https://zhuanlan.zhihu.com/p/406968094

        介绍了 六边形、洋葱头、整洁架构

  • 还在搞三层架构?了解下 DDD 分层架构的三种模式吧 !-阿里云开发者社区

        https://developer.aliyun.com/article/862217?spm=a2c6h.12873639.article-detail.54.a98141b3mXH3vN&scm=20140722.ID_community@@article@@862217._.ID_community@@article@@862217-OR_rec-V_1-RL_community@@article@@784117

  • 可落地的DDD编码实践(代码结构) - 掘金

        https://juejin.cn/post/7040826223500967972

  • DDD 中关于应用架构的那些事 - 知乎

        https://zhuanlan.zhihu.com/p/634102554

有参考结构

 ACL(Anticorruption Layer):防腐层

防腐层一般用在下游上下文中,可以用来隔绝上游上下文中可能发生的变化。

在上面的例子中,商品服务提供了一个 GetProductDetail 接口,用以返回关于 Product 的全量信息。

但是对于其他集成方来说,可能只是想拿到产品的很少一部分信息,比如在订单服务中要展示订单的详情,而详情只需要产品的图片和名称即可。

可以看到,作为服务的提供方,其具有追求普适性和灵活性的特点,而服务的调用方,在使用时却想要能够集中满足特定需求的接口。

CQRS

CQRS

简述3种CQRS架构模式-CSDN博客
https://blog.csdn.net/u013256816/article/details/109505549

[.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现 - Learning hard - 博客园
https://www.cnblogs.com/zhili/p/CQRSDemo.html

图比较好

解耦

  • 解密DDD:领域事件这一系统解耦的终极武器-51CTO.COM

        https://www.51cto.com/article/767962.html

java

jvm

自定义classLoader的应用场景

Java 自定义 ClassLoader 实现隔离运行不同版本jar包_自定义classloader加载jar包-CSDN博客
https://blog.csdn.net/yongqi_wang/article/details/125783257

老大难的 Java ClassLoader 再不理解就老了 - 知乎
https://zhuanlan.zhihu.com/p/51374915

一看你就懂,超详细java中的ClassLoader详解-CSDN博客
https://blog.csdn.net/briblue/article/details/54973413

Stream

关于 Java Lambda 表达式看这一篇就够了(强烈建议收藏)-腾讯云开发者社区-腾讯云
https://cloud.tencent.com/developer/article/1970589

Java8 Streams用法总结大全 之 Collector用法详解_collectors.summarizinglong-CSDN博客
https://blog.csdn.net/hou_ge/article/details/125460426

java stream中Collectors的用法 - flydean - 博客园
https://www.cnblogs.com/flydean/p/java-stream-collection.html

自定义注解

【Java注解】@Retention的作用和@Target注解的说明以及使用方法_java annotation target rentation-CSDN博客
https://blog.csdn.net/weixin_44299027/article/details/105918873

深入理解Java:注解(Annotation)自定义注解入门 - peida - 博客园
https://www.cnblogs.com/peida/archive/2013/04/24/3036689.html

UT及mock

关于单测技术选型,聊聊我的思考 - 陈树义的博客
https://shuyi.tech/archives/talk-about-unit-test-tech-selection

Mock工具Jmockit实战 - 王子石 - 博客园
https://www.cnblogs.com/zishi/p/6760272.html

Jmockit使用详解之Mocking_mock构造方法-CSDN博客
https://blog.csdn.net/guanhang89/article/details/78703945

JMockit 中捕获 mock 对象方法的调用参数 | 隔叶黄莺 Yanbin Blog - 软件编程实践
https://yanbin.blog/jmockit-capture-mock-call-arguments/

kafka

Kafka消费分组和分区分配策略_kafka 分组-CSDN博客
https://blog.csdn.net/tian830937/article/details/129163534

Range(范围策略):

kafka学习(五):消费者分区策略(再平衡机制)_cooperativestickyassignor-CSDN博客
https://blog.csdn.net/weixin_40482816/article/details/127513743

Kafka生成消息时的3种分区策略 - 掘金  -- 含属性、分区类全路径
https://juejin.cn/post/7089251355214217253

Maven

配置Maven Plugin - 知乎
https://zhuanlan.zhihu.com/p/560636394?utm_id=0

BigData

HBase

原理

HBase(3) 你想要的 HBase 原理都在这了 - 美码师 - 博客园
https://www.cnblogs.com/littleatp/p/12079507.html

一文讲清HBase存储结构 - 掘金
https://juejin.cn/post/6844903753271754759

逻辑结构

物理结构

Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景) - wendyw - 博客园
https://www.cnblogs.com/wendyw/p/12616694.html

HBase的架构、数据存储结构和进阶原理(读写流程、Flush、StoreFile合并、预分区、Region拆分与合并)详解_向hbase写入文件时,哪个组件负责将文件拆分成块-CSDN博客
https://blog.csdn.net/weixin_43230682/article/details/107511310

schema、Rowkey设计原则

什么是schema的设计原则_云数据库HBase版(Hbase)-阿里云帮助中心
https://help.aliyun.com/zh/hbase/user-guide/hbase-schema-design?spm=a2c4g.11186623.0.0.69783bef2J4gTi

HBase 热点问题——rowkey散列和预分区设计 - 吊车尾88 - 博客园
https://www.cnblogs.com/yyy-blog/p/11887271.html

HBase RowKey的设计原则和注意事项_云数据库HBase版(Hbase)-阿里云帮助中心
https://help.aliyun.com/zh/hbase/user-guide/rowkey-design?spm=a2c4g.11186623.0.0.32f13befpYlzqp

(分区的拆分,参考下面的内容)

【HBase】HBase 自动拆分和预分区 - 简书
https://www.jianshu.com/p/cb92b61f66fc

HBase最佳实践 | 合理的Region数量与大小-腾讯云开发者社区-腾讯云
https://cloud.tencent.com/developer/article/1620694

API

God-Of-BigData/大数据框架学习/Hbase_Java_API.md at master · wangzhiwubigdata/God-Of-BigData · GitHub
https://github.com/wangzhiwubigdata/God-Of-BigData/blob/master/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%A1%86%E6%9E%B6%E5%AD%A6%E4%B9%A0/Hbase_Java_API.md

==

HBase连接正确方式_hbase连接方式-CSDN博客
https://blog.csdn.net/u012129558/article/details/102584588

table close

官方1:

Table (Apache HBase 1.2.12 API)
https://hbase.apache.org/1.2/apidocs/org/apache/hadoop/hbase/client/Table.html

官方2:

ConnectionFactory (Apache HBase 1.2.12 API)
https://hbase.apache.org/1.2/apidocs/org/apache/hadoop/hbase/client/ConnectionFactory.html

HBase client application best practices - Cloudera Community - 244721
https://community.cloudera.com/t5/Community-Articles/HBase-client-application-best-practices/ta-p/244721

查询性能

Hbase Filter+Scan 查询效率优化_hbase filter效率-CSDN博客
https://blog.csdn.net/u013465194/article/details/83044910

众所周知,Hbase利用filter过滤器查询时候会进行全表扫描,查询效率低下,如果没有二级索引,在项目中很多情况需要利用filter,下面针对这种情况尝试了几种优化的方案,仅供参考,欢迎交流。

一个自定义 HBase Filter -“通过RowKeys来高性能获取数据” - 王安琪 - 博客园
https://www.cnblogs.com/wgp13x/p/4196466.html

相信有人开始发问了,HBase不是提供了功能很强劲的Filter了吗?Comparision Filters,Dedicated Filters,Decorating Filters,可以或可以且,可以相等,还可以组合,看起来很丰满,用起来很骨感。经过一番实践过后,性能低得吓人,使用200条RowKey在300百万的数据集中取数据,要等上好几钟,究其原因,多Filter的或组合过滤就是在HBase的数据里滚了一遍又一遍,不慢才怪。
经过验证,在MySQL单表数量为1000万时,过滤主键300个ID共花费20s左右;在HBase单表数据量达到1000万条时,过滤300条RowKey的数据共花了10多秒

-->性能不够,继续优化

HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较 - 王安琪 - 博客园
https://www.cnblogs.com/wgp13x/p/4245182.html

可以肯定的是,此种批量取数据的方法达成的速度,与取一次性数据的数量基本成线性关系,与总数据量相关不大,需要取出的数据越多耗时也就越多,经过测试一次性取1000条数据花费大约在2至3s以内,总数据量为400W。
而通过自定义Filter方式取数据的方法的速度,与取一次性数据的数量相关不大,与总数据量成线性关系,总数据量越大取出越慢,即使只需取一条 ,因为此方式对HBase每条数据都过滤一遍。

这样,如果在总数不大,需要取数据量较大的情况下,通过自定义Filter取数据的方式可能还占有些优势,但在正常情况下,此种批量取数据的方法还是优势更大。

HBase RowKey与索引设计 - 牧梦者 - 博客园
https://www.cnblogs.com/swordfall/p/10597802.html

HBase查询优化 - 哥不是小萝莉 - 博客园
https://www.cnblogs.com/smartloli/p/9425343.html

客户端在读取HBase的数据时,实际是与RegionServer进行数据交互。

在使用批量get时可以有效的较少客户端到各个RegionServer之间RPC连接数,从而来间接的提高读取性能

通常情况下,HBase表设计我们一个指定一个列簇就可以满足需求,但也不排除特殊情况,需要指定多个列簇(官方建议最多不超过3个),

其实官方这样建议也是有原因的,HBase是基于列簇的非关系型数据库,意味着相同的列簇数据会存放在一起,而不同的列簇的数据会分开存储在不同的目录下。

如果一个表设计多个列簇,在使用rowkey查询而不限制列簇,这样在检索不同列簇的数据时,需要独立进行检索,查询效率固然是比指定列簇查询要低的,列簇越多,这样影响越大。

而同一列簇下,可能涉及到多个列,在实际查询数据时,如果一个表的列簇有上1000+的列,这样一个大表,如果不指定列,这样查询效率也是会很低。

通常情况下,在查询的时候,可以查询指定我们需要返回结果的列,对于不需要的列,可以不需要指定,这样能够有效地的提高查询效率,降低延时。

万字长文详解HBase读写性能优化 - 文章详情
https://z.itpub.net/article/detail/117EB9F43E09902C6B2A732042F835D5

shell

字符串处理

shell变量的子串的删除/替换_shell数组子串替换-CSDN博客
https://blog.csdn.net/github_33736971/article/details/53980123

${parameter//pattern/string}
用string来替换parameter变量中所有匹配的pattern

示例:转数组

#!/bin/bash
string="hello,shell,haha" 
array=(${string//,/ }) 
for var in ${array[@]}
do
  echo $var
done 

shell 使用指定的分割符来分割字符串的方法_shell按分隔符拆分-CSDN博客
https://blog.csdn.net/laobai1015/article/details/119750536

【linux命令学习】— cut 和 tr 命令学习_cut与tr-CSDN博客
https://blog.csdn.net/u013332124/article/details/93654007

shell脚本字符串截取的8种方法_shell截取[]内部内容-CSDN博客
https://blog.csdn.net/yizhiniu_xuyw/article/details/113995449

网络

【NE探秘】一个报文的路由器之旅 - 开篇引言 - NGDCN
https://ngdcn.com/post/38.html

【NE探秘】一个报文的路由器之旅-(5) QoS处理流程 - NGDCN
https://ngdcn.com/post/43.html

服务治理

不会服务治理,还怎么搞微服务?-微服务服务治理
https://www.51cto.com/article/706958.html

超复杂调用网下的服务治理新思路 - 文章 - 开发者社区 - 火山引擎
https://developer.volcengine.com/articles/7316455900910125107

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值