自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KimmKing的技术博客

我看不清的,何止是你的眼睛.

  • 博客(415)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 微服务架构深度解析与最佳实践(全篇汇总,2.4万字)

微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo、还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Rest 服务。但是这个过程,具体应该怎么做?现有的条件下到底要不要做微服务?服务拆分成什么粒度才是合适的?遗留的老系统需要如何考虑重构改造?有哪些坑需要我们注意?系统怎么在分布式服务下实现数据的一致性和...

2020-04-26 19:11:48 3384

原创 百亿流量微服务网关的设计与实现

目录API网关概述1. 什么是API网关(API Gateway)2. 分布式服务架构、微服务架构与API网关3. API网关的技术趋势API网关的定义、职能与关注点1. API网关的定义2. API网关的职能3. API网关的关注点API网关的分类与技术分析1. API网关的分类2. 流量网关与WAF3. 业务网关开源网关的分析与调研1. ...

2020-04-13 15:20:48 2009

原创 关于群里脱敏系统的讨论2024-09-20

实际上,脱敏系统十个业务系统,上面只算是一个技术原理,真正要搞定的是常见敏感数据是哪些,怎么做符合业务规则的转换。脱敏系统对接上生产库,指定了哪些数据要,选上一些规则集,然后跑十个八个小时,核心库的数据就清洗干净了。shardingsphere里提到的脱敏功能,我一直建议改成叫 加解密,因为跟脱敏系统,没啥关系。你的地址,转了以后,也是一个中国存在的真的地址。最核心的是,把敏感数据转换了以后,所有数据还都是逻辑自洽的,业务关系还在。群里大家讨论脱敏系统,傅同学:秦老师,银行数据脱敏怎么做的,怎么存储的?

2024-09-20 15:38:47 98

原创 如果java垮了其他语言社区就遭殃了,这个说法可信吗?

大家不过是用脚投票罢了。作为使用人数最多的,做业务系统首选的编程语言,如果Java的份额下降一大截,那么说明软件开发市场萎缩了一大坨,大部分小众语言就完蛋了。如果Java直接完蛋了,那么这个市场也基本上完蛋了。孩子,我劝你善良,因为《技术的本质》里说,那么能够得到广泛应用并且长期发展的技术,往往都不是最强的技术,毕竟”物竞天择、适者生存“,从来都不是“强者生存”。不过我承认Java不是最先进的编程语言,不过这有什么关系呢(我从业近20年,最开始就是做C++/C#的,这么多年来,什么语言的起起落落没见过)。

2024-09-14 18:20:06 148

原创 程序员的护城河是什么 ?

老板犯了事儿,我帮忙顶替的,或者找人平的事儿。老板家里的人工作,都是我找体制内的朋友安排好的。或者我是公司最大的资方的公子,只是过来游历人间,体验一番。或者最大客户是我搞定的,人家只认我,不认公司。公司最核心的资产,都在我的控制下,或者直接就是归于我所有的。比如公司卖的最好的产品,专利是我个人的。业务人员和产品经理,都搞不清楚需求,我也不告诉其他研发,都在我脑子里,并且也是一团浆糊,恰好有时候我能让系统的功能正常跑起来。:大部分情况下,这种行为属于,屎上雕花,华而不实,毫无用处。

2024-09-14 18:13:57 657

原创 讨论:无法访问不同网段的Kafka问题

X同学:A网段的机器,访问B网段部署的Kafka集群,中间做了网络映射,映射成A网段可以访问的IP地址,A网段程序里配置bootstrap.servers就是这些可以访问的地址。然后我们发现B在一个集群里,还有一个节点C IP为10.1.2.103,A请求B后,会拿到这个C的信息,也就是10.1.2.103,然后发起访问。这时候我们会发现A是无法访问C的,而且上面的办法也不能对C来使用,因为C的IP地址是B给的。这个问题的本质是,redis/kafka 集群不是被设计成跨不同的网络访问区来使用的。

2024-09-09 17:07:50 613

原创 关于群里读书的讨论2024-09-08

现在,我是特为来告诉你,对我来说,我觉得现在你比年轻的时候更美,那时你是年轻女人,与你那时的面貌相比,我更爱你现在备受摧残的面容。许三观用自己的血获取赖以生存的资源,而我们用自己的青春,时间,健康和快乐交换金钱,许三观卖血后用黄酒和猪肝补偿自己,而我们购买护肤品,衣服,包,游戏机等等慰藉辛苦工作的自己,我们都是许三观,只是我们今天卖的不是血而已。KK:余华有一种把超过我们想象中的苦难,揉碎了,把细节一点点展现 给我们看的残忍,而从作者叙事的视角,又是非常的冷酷平静的。喜剧的内核是悲剧,这句话是陈佩斯说的。

2024-09-09 16:59:10 258

原创 关于群里读研的讨论2024-09-09

读研究生的痛苦就在于,已经年纪不小了,还在读书,工作的同学都已经有收入了,自己还是穷的要死,在学校里所有的事儿都很简单,慢慢的会意识到学校的很多东西并没有什么用处,研究生毕业并不比本科毕业进入职场有多大优势。可乐:大家好,我有个朋友在读学硕,她老师前两年让她干特别多的活,她感觉这些没什么帮助,也不知道怎么去推掉,想问问怎么去处理和导师之间的关系呢。先跟着老师干,就可以了。可乐:老师,我觉得大概率是吐槽[让我看看],毕竟都干了两年多了,还有一年毕业了,要想解决早就解决了。KK:那你提供情绪价值就好了。

2024-09-09 16:56:12 140

原创 Spring Native提升Java应用百倍启动速度

找一台Linux机器(比如Ubuntu/RedHat/CentOS),这里用了一台腾讯云的CentOS,然后安装git/OpenJDK11/maven/docker这几个软件。接着设置JAVA_HOME和M2_HOME,并加入到PATH变量,然后下载编译native代码。可以看到,启动原生应用程序,只用了0.022s,比之前的方式快了146倍。可以看到启动花了3.219s。然后可以浏览器或者命令行访问。效果跟上面使用JVM运行相同。

2024-09-04 23:47:20 726

原创 谈谈AI领域的认知误区、机会点与面临的挑战

最近2年,AI 技术的火爆,到处都能看到大家在讨论AI 的发展与机会。这里我们讨论一下AI 认知的误区,机会点和面临的挑战。 by kimmking

2024-09-04 22:55:04 1087

原创 Spring Cloud各个微服务之间为什么要用http交互?难道不慢吗?

但是反过来,1s序列化20万次,跟1s序列化22万次,虽然性能相差了10%,但是我们一次RCP请求里,相对于几ms的网络,几ms的数据库处理,10-200ms这个区间的RT来看,HTTP和JSON序列化的这点性能损失,在99%的场景下可以直接作为误差忽略掉。拿通信协议来说,HTTP肯定比TCP慢,HTTP协议本身有一个变长的头,TCP不需要这个东西,但是反过来,HTTP这个头可以用来做很多扩展性的东西,用TCP就需要一些自己定义一个类似的头,这么来看,TCP的复杂度就上升了。

2024-09-03 01:50:08 483

原创 程序员做外包,真的没地位没出路吗?

下面展开说说。

2024-09-03 01:45:02 570

原创 如何评价MyBatis-Plus?

想想看,国内一般公司,一个人天卖2000左右,tw要卖5-6000,那么怎么着也需要证明我tw的人,跟一般公司的人,要更nb,更有价值。单独写CRUD,大家既然拉不开差距,那么我说我的人都是专家,都会DDD,都会测试驱动开发,,,所以我卖得贵呀。因为包装一下,能把乙方的人天,卖更多钱,这样才有大把的利润。补充1:做小项目,业务也不复杂,交付了就成,怎么快怎么搞。这里改一下,如无需要,勿啥几把增方法论,或者ORM框架。至于后续的维护,功能的增加和变更,商务来聊二期好了。很多项目并不是需要这些东西的,硬上。

2024-09-02 13:50:41 330

原创 程序员为啥突然会变成这么辣鸡的一个行业?

但是后来,我慢慢发现,我实际的行业,并不是IT软件行业,而是金融/金融IT行业,电商/电商IT行业,数字货币行业。记得刚踏出学校,开始工作的时候,作为一个软件行业的从业者,我一直都在考虑,如何精进自己的技术,去研究一些底层的技术,哪怕工作中根本用不到这些东西。就是有一定专业技能,像是几百年前的木匠,铁匠,皮匠,比一般的农业劳动者,能生活的好一些,体面一些,饿不死,温饱线以上。甚至更进一步实现业务技术融合,因为在我心目中,我所属的行业是IT行业,技术是才是IT行业的根本,其他的业务,都是增删改查,有手就行。

2024-09-02 13:48:31 957

原创 说一说业务架构和应用架构

所以,后面又引入了一些DDD之类的方法论,指导大家去实现业务模型到代码结构的映射关系。我们常规聊的技术架构,都是为了搞定技术复杂度的,解决技术难题,引入开源组件这些。而业务复杂度,我们一般用业务架构,,或者工程方法论,或者叫”系统设计“来解决。深入懂业务的不懂代码,深入懂技术的不了解业务。到这个层次,大家应该明白,上面提到的所有的东西,都是为了解决业务复杂度的。大家都知道,我们搞软件研发的,面临两大复杂度,业务复杂度和技术复杂度。2、当业务发生变化时,能迅速的调整业务模型,并更新应用和系统代码结构。

2024-08-27 22:14:37 360

原创 挂个人-CSDN Java优秀内容博主rundreamsFly抄袭

昨天下午因为在微信群里讨论了这个话题,我就在18点左右把这个文章,发布到知识星球,知乎和CSDN,让大家可以通过免费的公共渠道看到。抄袭者文章 发布于2024-8-26 19:37:41秒,比我发布晚一个半小时,标注了是他“原创”。看到抄袭者发布的虽然还贴心的加了两张图,但是通过有目录可以看到应该是从zhihu抄过去的。本来不准备管的,一看还是一个“Java 领域优质创作者”,估计是个惯犯,这我可忍不了了。

2024-08-27 20:16:57 1216 2

原创 redis单线程 ,当redis在执行lua脚本的时候,会执行其他redis操作吗?

我们之前做分布式缓存平台的时候,为了数据保持版本一致性,给各个redis写操作命令都加了一个LUA脚本,脚本多了以后,为了考虑各种通用场景和条件判断,加了很多函数、字符串处理、多层循环,后来就发现这个方式虽然使得我们的脚步通用性和可维护性好了不少,但是缓存性能下降了一个数量级,RT从1ms级别到10ms级别,我们预期是3ms级别可以接受。这个期间来做其他操作。Redis执行Lua脚本,已经数据操作本身,都是在主线程中完成的。所以回到本问题,答案就是,Lua脚本执行过程中,其他的数据操作被阻塞,不会执行。

2024-08-26 18:09:57 679

原创 【0101】技术的定位:程序员是这个时代的手艺人

就是有一定专业技能,像是几百年前的木匠,铁匠,皮匠,比一般的农业劳动者,能生活的好一些,体面一些,饿不死,温饱线以上。其实就是对未知的好奇,求知的渴望,做事的敬畏,对时间的敏感,事实的接纳。资源都是外在的,不是自身的能力,而且资源现在有,不代表将来也有,总有消失的那一天,因为有时候:成也资源,败也资源。2、不陷入过去的选择,自己做过的选择就是必然的选择,接受自己选择带来的后果,再去设想哪些你没有选择的可能性,对现状于事无补,实际上哪怕你重新选过也不会比现在好多少,都是徒增烦恼。毕竟未来的世界,是数字化的。

2024-08-26 18:01:47 863

原创 不同GC下ParallelGCThreads和ConcGCThreads的计算公式

目录计算公式结论Parallel GC下验证CMS GC下验证G1 GC下验证前面的文章(JVM认知的常见10个误区 - kimmking的文章 - 知乎JVM认知的常见10个误区 - 知乎)里,我们提到了CMS下的这两个参数的关系。其实我们可以全面的看一下Parallel/CMS/G1 GC下的这个关系。计算公式结论这里先总结一下,具体的验证过程见下面的步骤:三种GC下,ParallelGCThreads默认值都是CPU线程数(想想为什么?) 并行Parallel GC.

2021-11-25 21:35:07 1543

原创 JVM认知的常见10个误区

目录1、OpenJDK8的默认GC是不是CMS/G1?2、默认最大堆内存是不是物理内存的1/4?3、默认的年轻代最大值是不是一定是堆内存的1/3?4、给JVM分配内存越多越好吗?5、堆外内存很小,所以不用管?6、所有的GC都会暂停(Stop The World)吗?7、并发线程是CPU的1/8,并行线程是CPU的5/8吗?8、是不是GC停顿越短系统性能就越好?9、G1会不会发生长时间停顿的Full GC?10、ZGC到底比G1/CMS/ParallelGC好在哪儿..

2021-11-25 19:07:03 824

原创 江同学的ShardingSphere编译指北

今天第一次给ShardingSphere提pr的一个同学写的江伟楷:ShardingSphere编译指北说实话 我第一次看见这么大个repo是有点发怵的 公司也有个repo 里头7 8个module 连编译带test要二三十分钟 点下去了 如果你要等着他干活意味着上个厕所回来再泡杯茶 而shardingsphere几十个模块 光文件夹都看着晕。。。在看见一些小伙伴早已编译好了之后拿到了小任务 我又开始打起了主意要把这个repo弄好 于是乎就有了这篇踩坑记1. 克隆项目前期准备:想给开源

2020-11-20 20:38:16 1622

原创 Snakeyaml的一个bug

Snakeyaml的一个bug反序列化一个Properties类型,会直接当做Map处理。就是说把num: 1变成一个String的key(num)和一个Integer的value(1),然后put到Properties对象,而不是使用setProperty方法。java.util.Properties虽然是个继承HashTable的Map,但是一般我们都用setProperty和getProperty,这两个方法写死了只处理string。特别是getProprety里判断了一下如果value不

2020-11-18 22:29:57 777 1

原创 我想对读者说的话

课程背景近些年来,无论是使用规模、开发者人数,还是技术生态成熟度、相关工具的丰富程度,Java 都当之无愧是后端开发语言中不可撼动的王者,也是开发各类业务系统的首选语言。时至今日,整个 IT 招聘市场上,Java 开发工程师依然是缺口最大,需求最多的热门职位。另外,从整个市场环境看,传统企业的信息化,传统 IT 系统的互联网化,都还有非常大的发展空间,由此推断未来 Java 开发的市场前景广阔...

2020-09-22 12:07:19 1512

原创 环境准备:千里之行,始于足下

Java 语言编写代码非常简单,也很容易入门,非常适合开发各种企业级应用和业务系统。一个众所周知的事实是: 用起来越简单的系统, 其背后的原理和实现就越复杂。道理很容易理解, 系统的内部实现考虑了各种极端的情况,对用户屏蔽了各种复杂性。作为支撑庞大的 Java 生态系统的基石, JVM 内部实现是非常复杂的。据统计,OpenJDK 的实现代码已经超过 1000 万行。JVM 难不难? 自然是 “...

2020-09-22 12:07:17 973

原创 常用性能指标:没有量化,就没有改进

前面一节课阐述了 JDK 的发展过程,以及怎么安装一个 JDK,在正式开始进行 JVM 的内容之前,我们先了解一下性能相关的一些基本概念和原则。如果要问目前最火热的 JVM 知识是什么? 很多同学的答案可能是 “JVM 调优” 或者 “JVM 性能优化”。但是具体需要从哪儿入手,怎么去做呢?其实“调优”是一个诊断和处理手段,我们最终的目标是让系统的处理能力,也就是“性能”达到最优化,...

2020-09-22 12:07:16 838

原创 JVM 基础知识:不积跬步,无以至千里

前面的章节我们介绍了 JDK 和 JVM 的关系以及环境准备等,本节我们来探讨一下 JVM 的基础知识,包括以下内容:常见的编程语言类型关于跨平台、运行时(Runtime)与虚拟机(VM)关于内存管理和垃圾回收(GC)3.1 常见的编程语言类型我们都知道 Java 是一种基于虚拟机的静态类型编译语言。那么常见的语言可以怎么分类呢?1)编程语言分类首先,我们可以把形形色色的编程从底...

2020-09-22 12:07:14 807

原创 Java 字节码技术:不积细流,无以成江河

Java 中的字节码,英文名为 bytecode, 是 Java 代码编译后的中间代码格式。JVM 需要读取并解析字节码才能执行相应的任务。从技术人员的角度看,Java 字节码是 JVM 的指令集。JVM 加载字节码格式的 class 文件,校验之后通过 JIT 编译器转换为本地机器代码执行。 简单说字节码就是我们编写的 Java 应用程序大厦的每一块砖,如果没有字节码的支撑,大家编写的代码也就...

2020-09-22 12:07:13 651

原创 Java 类加载器:山不辞土,故能成其高

前面我们学习了 Java 字节码,写好的代码经过编译变成了字节码,并且可以打包成 Jar 文件。然后就可以让 JVM 去加载需要的字节码,变成持久代/元数据区上的 Class 对象,接着才会执行我们的程序逻辑。我们可以用 Java 命令指定主启动类,或者是 Jar 包,通过约定好的机制,JVM 就会自动去加载对应的字节码(可能是 class 文件,也可能是 Jar 包)。我们知道 Jar 包...

2020-09-22 12:07:11 565

原创 Java 内存模型:海不辞水,故能成其深

了解计算机历史的同学应该知道,计算机刚刚发明的时候,是没有内存这个概念的,速度慢到无法忍受。 直到冯诺依曼提出了一个天才的设计才解决了这个问题,没错,这个设计就是加了内存,所以现代的电子计算机又叫做“冯诺依曼机”。JVM 是一个完整的计算机模型,所以自然就需要有对应的内存模型,这个模型被称为 “Java 内存模型”,对应的英文是“Java Memory Model”,简称 JMM。Java 内...

2020-09-22 12:07:09 542

原创 JVM 启动参数详解:博观而约取、厚积而薄发

JVM 作为一个通用的虚拟机,我们可以通过启动 Java 命令时指定不同的 JVM 参数,让 JVM 调整自己的运行状态和行为,内存管理和垃圾回收的 GC 算法,添加和处理调试和诊断信息等等。本节概括的讲讲 JVM 参数,对于 GC 相关的详细参与将在后续的 GC 章节说明和分析。直接通过命令行启动 Java 程序的格式为:java [options] classname [args]ja...

2020-09-22 12:07:08 1102

原创 JDK 内置命令行工具:工欲善其事,必先利其器

很多情况下,JVM 运行环境中并没有趁手的工具,所以掌握基本的内置工具是一项基本功。JDK 自带的工具和程序可以分为 2 大类型:开发工具诊断分析工具JDK 内置的开发工具写过 Java 程序的同学,对 JDK 中的开发工具应该比较熟悉。下面列举常用的部分:工具简介javaJava 应用的启动程序javacJDK 内置的编译工具javap反编译...

2020-09-22 12:07:06 631

原创 JDK 内置图形界面工具:海阔凭鱼跃,天高任鸟飞

GUI 图形界面工具,主要是 3 款:JConsole、JVisualVM、JMC。其实这三个产品可以说是 3 代不同的 JVM 分析工具。这三个工具都支持我们分析本地 JVM 进程,或者通过 JMX 等方式连接到远程 JVM 进程。当然,图形界面工具的版本号和目标 JVM 不能差别太大,否则可能会报错。下面分别对它们进行介绍。JConsoleJConsole,顾名思义,就是“Java 控...

2020-09-22 12:07:04 986

原创 JDWP 简介:十步杀一人,千里不留行

Java 平台调试体系(Java Platform Debugger Architecture,JPDA),由三个相对独立的层次共同组成。这三个层次由低到高分别是 Java 虚拟机工具接口(JVMTI)、Java 调试连接协议(JDWP)以及 Java 调试接口(JDI)。模块层次编程语言作用JVMTI底层C获取及控制当前虚拟机状态JDWP中间层C定义 J...

2020-09-22 12:07:03 789

原创 JMX 与相关工具:山高月小,水落石出

Java 平台提供了全面的 JVM 监控和管理措施。在 Java SE 5 之前,虽然 JVM 提供了一些底层的 API,比如 JVMPI 和 JVMTI,但这些 API 都是面向 C 语言的,需要通过 JNI 等方式才能调用,想要监控 JVM 和系统资源非常不方便。Java SE 5.0 版本引入了 JMX 技术(Java Management Extensions,Java 管理扩展),J...

2020-09-22 12:07:01 497

原创 常见的 GC 算法介绍(Parallel/CMS/G1):温故而知新

GC 是英文词汇 Garbage Collection 的缩写,中文一般直译为“垃圾收集”。当然有时候为了让文字更流畅,也会说“垃圾回收”。一般认为“垃圾回收”和“垃圾收集”是同样的意思。此外,GC 也有“垃圾收集器”的意思,英文表述为 Garbage Collector。本节我们就来详细讲解常用的 GC 算法。闲话 GC假如我们做生意,需要仓库来存放物资。如果所有仓库都需要公司自建,那成本...

2020-09-22 12:06:59 1707

原创 常见的 GC 算法(Parallel/CMS/G1)

学习了 GC 算法的相关概念之后,我们将介绍在 JVM 中这些算法的具体实现。首先要记住的是,大多数 JVM 都需要使用两种不同的 GC 算法——一种用来清理年轻代,另一种用来清理老年代。我们可以选择 JVM 内置的各种算法。如果不通过参数明确指定垃圾收集算法,则会使用相应 JDK 版本的默认实现。本章会详细介绍各种算法的实现原理。串行 GC(Serial GC)串行 GC 对年轻代使用 m...

2020-09-22 12:06:57 2073

原创 Java11 ZGC 和 Java12 Shenandoah 介绍:苟日新、日日新、又日新

随着互联网的迅速发展和计算机硬件的迭代更新,越来越多的业务系统使用大内存。 而且这些实时在线业务对响应时间比较敏感。比如需要实时获得响应消息的支付业务,如果JVM的某一次GC暂停时间达到10秒,显然会让客户的耐心耗尽。还有一些对延迟特别敏感的系统,一般要求响应时间在100ms以内。 例如高频交易系统,业务本身就有一些运算耗时,如果GC暂停时间超过一半(>50ms),那很可能就会让某些交易策...

2020-09-22 12:06:56 732

原创 Oracle GraalVM 介绍:会当凌绝顶、一览众山小

GraalVM 简介与特性前面了解了那么多的 JVM 相关技术,我们可以发现一个脉络就是 Java 相关的体系越来越复杂,越来越强大。放眼看去,最近十年来,各种各类的技术和平台层出不穷,每类技术都有自己的适用场景和使用人群。并且伴随着微服务和云原生等理念的出现和发展,越来越多的技术被整合到一起。那么作为目前最流行的平台技术,Java/JVM 也自然不会在这个大潮中置身事外。本节我们介绍一个语言...

2020-09-22 12:06:54 1135

原创 GC 日志解读与分析:千淘万漉虽辛苦,吹尽狂沙始到金

本章通过具体示例来演示如何输出 GC 日志,并对输出的日志信息进行解读分析,从中提取有用的信息。本次演示的示例代码为了演示需要,我们先来编写一段简单的 Java 代码:package demo.jvm0204;import java.util.Random;import java.util.concurrent.TimeUnit;import java.util.concurrent....

2020-09-22 12:06:53 474

原创 JVM 的线程堆栈等数据分析:操千曲而后晓声、观千剑而后识器

Java 线程简介与示例多线程的使用和调优也是 Java 应用程序性能的一个重要组成部分,本节我们主要来讨论这一部分内容。线程(Thread)是系统内核级的重要资源,并不能无限制地创建和使用。创建线程的开销很大,由于线程管理较为复杂,在编写多线程代码时,如果有哪里未设置正确,可能会产生一些莫名其妙的 Bug。开发中一般会使用资源池模式,也就是“线程池”(Thread Pool)。通过把线程的...

2020-09-22 12:06:51 415

本文使用74页分析了国内重点银行核心系统的数据库选型方案和细节,以及国内主流分布式数据库的优缺点

本文使用74页分析了国内重点银行核心系统的数据库选型方案和细节,以及国内主流分布式数据库的优缺点。

2024-09-03

0101技术的定位:程序员是这个时代的手艺人

就是有一定专业技能,像是几百年前的木匠,铁匠,皮匠,比一般的农业劳动者,能生活的好一些,体面一些,饿不死,温饱线以上。其实就是对未知的好奇,求知的渴望,做事的敬畏,对时间的敏感,事实的接纳。资源都是外在的,不是自身的能力,而且资源现在有,不代表将来也有,总有消失的那一天,因为有时候:成也资源,败也资源。2、不陷入过去的选择,自己做过的选择就是必然的选择,接受自己选择带来的后果,再去设想哪些你没有选择的可能性,对现状于事无补,实际上哪怕你重新选过也不会比现在好多少,都是徒增烦恼。毕竟未来的世界,是数字化的。

2024-08-27

金融级分布式缓存平台的一致性设计

一致性, 主要讲4个不一致的场景,以及怎么来处理的,包括lua,版本机制,延迟双删,MQ的4种同步队列。

2023-09-25

百亿流量API网关的设计与实现.pdf

我们从百亿流量交易系统 API 网关(API Gateway)的现状和面临问题出发,阐述微服务架构与 API 网关的关系,理顺流量网关与业务网关的脉络,带来最全面的 API 网关知识与经验。内容涉及: 百亿流量交易系统 API 网关现状和面临问题 分布式服务架构、微服务架构与 API 网关 API 网关的定义与职能、关注点 API 网关的分类与技术分析 流量网关的设计与应用 开源网关的分析与调研:OpenResty / Kong / Zuul2 / Spring Cloud Gateway 等 业务网关的设计与最佳实践 对网关系统的发展展望

2020-04-22

Apache-ShardingSpher-20200421.pdf

ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。 ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 它与NoSQL和NewSQL是并存而非互斥的关系。NoSQL和NewSQL作为新技术探索的前沿,放眼未来,拥抱变化,是非常值得推荐的。反之,也可以用另一种思路看待问题,放眼未来,关注不变的东西,进而抓住事物本质。 关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。 ShardingSphere已经在2020年4月16日从Apache孵化器毕业,成为Apache顶级项目。 欢迎通过shardingsphere的dev邮件列表与我们讨论。

2020-04-22

dotnetopensource

dotnetopensource

2007-06-21

D:\work\cc\Timer.rar

D:\work\cc\Timer.rar

2007-06-21

BigInteger_demo.zip

BigInteger_demo.zip

2007-06-13

3D饼图qchart源码(包括2个test)

3D饼图qchart源码(包括2个test)

2007-06-09

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

TA关注的人

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