- 博客(271)
- 资源 (12)
- 收藏
- 关注

原创 ServiceComb场景及其原理
ServiceComb中是实现RPC的框架类似Dubbo,又称Java底座。通过的方式导入ServiceComb的核心Bean定义文件,注入如下Bean定义。ConfigurationSpringInitializerCseApplicationListener,ContextRefreshedEvent事件监听器初始化相关的连接ContextRefreshedEvent Bean实例化完事件触达,初始化ServiceComb引擎SCBEngineorg.apache.servicecom
2022-12-04 17:23:30
1763
2

原创 SpringFrameWork之上的框架场景及其原理
从根上讲解原理,不会深入代码细节(不建议一上来就陷入细节中),根据自己的理解,找到切入点类,抽丝剥茧,如履薄冰。PS:本系列文章要看懂需要一些基础哈,最起码都都使用过。Spring Kafka用于简化Kafka client的使用,避免大量样板代码框架原理:使用要点:Spring Redis用于简化Redis Client的使用,避免大量样板代码。框架原理:使用要点:SpringSpring mvc用于简化Tomcat的使用,避免大量样板代码。仅考虑前后端分离的场景,jsp等过
2022-09-01 00:01:08
729

原创 Redis场景及其原理
Redis多数处于Cluster模式下运行,多个Master节点(可配置副本)组成Cluster集群,参考华为云有如下性能。注意以下几点
2022-06-27 21:41:12
1387

原创 深入理解C语言
大型源代码里面经常出现一些晦涩的C语言及其规则。 本贴着重记录这些代码以及支撑代码运行的C语言神奇用法。 搞懂这些C语言面试就是无敌开挂模式了牛人讲解的C语言为啥难。语言的歧义 C语言的谜题 谁说C语言很简单?C 语言中的指针和内存泄漏C 语言中的指针和内存泄漏 这篇文章简单讲解了关于动态内存的东西,这些东西一般在大型程序里面都是必须十分注意的问题。选择整数数据类.........
2017-09-22 10:21:02
6283
1

原创 TCP/IP协议理论
参考文献: 《TCP-IP详解卷一:协议》 《用TCP-IP进行网际互联第一卷:原理、协议与结构》 《LwIP协议深度剖析与实战演练》 《嵌入式Internet TCP IP基础、实现及应用》TCP/IP协议族通俗综述 OSI结构仅仅停留在理论阶段,没有以实践作为依据,实现起来过去复杂,所以TCP/IP协议栈简化了。从底层到顶层剖析TCP/IP协议栈1...
2017-08-28 19:35:28
6760
1
原创 Netty场景及其原理
这里面的实现都包括大量的成员域。最后,我们总结reactor线程select步骤做的事情:不断地轮询是否有IO事件发生,并且在轮询的过程中不断检查是否有定时任务和普通任务,保证了netty的任务队列中的任务得到有效执行,轮询过程顺带用一个计数器避开了了jdk空轮询的bug,过程清晰明了。继承SingleThreadEventExectExecutor,从名字中就可以看出,此任务是在单线程中执行的,其他所做的包装都是为了可以更加安全高效的执行任务,下面我们一一分析,首先看execute的具体实现。
2023-09-26 23:40:35
434
原创 ClickHouse场景及其原理
实现方式有很多种,一种比较通用的做法用map存储,是把前 32 位存成 key,value是后32 所对应的 RoaringBitmap32,RoaringBitmap32 的实现如图中所示。无论是Array还是Map,最初都不支持创建跳数索引,所以在其他索引字段过滤效果有限的情况下,针对Array和Map的操作可能会成为查询的性能瓶颈。主要是对广告投放的用户群进行画像分析,也是在线的,同样对时间有一定的要求,因为是偏分析的场景,一般不能超过 20 秒,否则用户的体验就非常差了。
2023-09-10 12:43:40
685
原创 Java工具包
面向过程的编程方法,提供众多优美的工具类,如果想使用对应的通用类,不论是从实现方式还是引入jar包的方式,都值得我们参考,增加代码的复用率。
2023-04-04 22:45:37
409
原创 Dubbo3场景及其原理
Dubbo是和ServiceComb中Java-Chassis并驾齐驱的RPC框架实现,简化微服务之间的相互调用,在设计架构中总是出奇的相似,优秀的开源框架,总是在实现理念上如出一辙,
2022-12-22 21:40:41
685
原创 SpringCloud场景及其原理
Spring Cloud就是Spring Framework应用集合的大杂烩,将很多框架进行了二次封装和Spring框架深度融合在一起,使用框架应用起来更加的快捷方便。
2022-12-10 00:32:31
255
原创 常用模式场景及其原理
引言:好的Code总是出奇的像,坏的Code也是出奇的像。偏门的就不记了,记录下工作中应用最最最广泛的一些模式,在代码呼之欲出的时候,可以考虑下,我们应当如何组织Class,如何在增加新功能的时候,可以不修改原有Class,或者修改很少,我们应该拥抱开闭原则,做到代码低耦合,高内聚,这就需要使用下面的一些个思维模式。单例职责链Tomcat的Filter,servicecomb的Filter,mvc的Hander,aop的intercepter。观察者Spring的EventBus,Apol.
2022-08-26 23:37:33
221
原创 Eureka场景及其原理
微服务架构下,会将不同功能模块微服务化,为了提升性能,每个微服务会以无状态多实例运行。实例数支持动态伸缩。因此需要服务注册中心来集中管理每个微服务实例,这样服务的调用方就可以动态地从服务注册中心获取到当前可用的服务实例来发起调用。Eureka就是带有负载平衡和故障转移的服务注册中心,用于服务的发现、负载平衡和故障转移,使用Spring Cloud+Netflix套件非常容易搭建分布式多体应用。如上架构图,提供方注册到注册中心,服务通过特定的。...
2022-08-07 22:51:55
256
原创 Apollo配置中心架构设计
这里写目录标题分布式多体应用分布式多体应用分布式就是使用冗余节点设计,多个节点对外提供一样的能力,通过某种方式告诉调用方节点,对于调用方无感知提供方的节点变化。
2022-08-06 11:04:08
169
原创 如何成为一名合格的程序员?
为何需要记录?从C/C++转到自学Java,深知学习东西不能和啥都没学过的小白一样,在学习的过程中,更应该多关注技术的本质及其原理,而不是浮于表面简单的增删查改搬砖。以前学习C++系,深知理解技术本质的重要性,否则在达到性能瓶颈或碰到难题之后,寸步难行,根本无从下手去找问题。在我看来自学没有那么复杂,好好践行下面两点即可:1、首先明白需要学习什么?可以参考知名公司的招聘或项目需求。2、其次...
2018-11-22 11:28:43
4272
原创 2019年秋招提前批面筋
综述本人非科班生,本科普通二本院校、硕士西安某末流985,本硕专业都是电子与通信工程,基本做的东西离不开单片机、DSP、FPGA、STM32,先前完全没有接触过网络、数据结构算法等。研二上学期想往互联网转,所以自学了一年计算机专业的知识,也面了一些互联网大厂,积累了一些经验。本人仅仅参加了提前批获得offer也都一般般,因为学校三方发得比较早,并且华为给的薪资还不错,就提前结束了秋招。1、腾讯...
2018-10-24 10:58:38
4761
4
原创 英文单词记录
recursion:递归whereas:然而partition:分割,划分partitioning:分割区shuffle:洗牌,搬移maintain:维护,保持as long as:只要,如果out of place:不合适;不在应在的位置invariant:无变化的,不变的instructive:有益的;教育性的tricky:狡猾的;微妙的;(形势、工作等)复杂的;机警的...
2018-10-08 10:05:09
1822
原创 剑指offer笔试题
重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 class Solution {public: /* 1、前序遍历第一个节点是根节点,中序遍历中间节点是根节点并将分为左右子...
2018-06-30 10:39:29
1134
原创 leetcode部分题目合集
1、题目描述 Given a binary tree,find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node。 解析: 通过BFS层序遍历树,找到第一个叶子节点,即为最短的深度...
2018-06-25 17:04:29
515
原创 Bitmap和BloomFilter
题目5TB的硬盘上放满了数据,请写一个算法将这些数据进行排重。如果这些数据是一些32bit大小的数据该如何解决?如果是64bit的呢?1、BitmapBitmap又叫做位图,判断数组中的某位索引值下的位是否为1,来表示这个数是否存在。假如53存在,那么就将数组中的第53位置1。这样Bitmap极大地压缩了所需要的内存空间,并且还额外地完成了对原始大型数据的排序工作。使用位图可以大大节省...
2018-06-20 20:03:23
1615
转载 结合源码分析Memcached与Redis实现
Memcached 与 Redis 实现的对比。 Redis和Memcached的区别 选redis还是memcache,源码怎么说?综述memcache和redis是互联网分层架构中,最常用的kv键值缓存。将常用数据缓存在内存中,加快查询速度,检索数据库服务器的压力非常重要。在选型的时候到底是选择memcache还是redis必须根据实际的应用场景选择。事件网络模型Memca...
2018-06-19 22:02:44
839
原创 模板模式
介绍对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法) 的框架(或通用的应用算法)是相同的。Template提供了这种情况的一个实现框架。Template模式是采用继承的方式实现这一点:将逻辑(算法)框架放在抽象基类中,并 定义好细节的接口,子类中继承实现其细节。实际上就是利用语言的多态特性,简化逻辑框架的实现。例如最近有个招聘会,有一家公司不接受简历,而是给应聘...
2018-06-14 17:09:13
174
原创 原型模式
浅拷贝和深拷贝拷贝构造函数调用的条件有以下几个用类的一个对象初始化该类的另一个对象时如果函数的形参是类的对象,调用函数时,进行形参和实参结合时. 如果函数的返回值是类的对象,函数执行完成返回调用者时.需要产生一个临时类对象时。深和浅定义了拷贝构造函数的行为。 当为浅拷贝时候,则拷贝构造函数拷贝类中静态(区别与动态分配,不是指的static)或动态(指针,指向区域动态分配)变...
2018-06-13 21:59:11
322
原创 建造者模式
介绍例如建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下(传入参数)一步一步构造出不同的产品(但是内部建造顺序都是稳定的)。当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要复杂对象的创建过程和这个对象的表示(展示)分离开来,这样做的好处就是通过一步步的进行复杂对象的构建, 由于在每一步的构造过程中 可以引入参数,使...
2018-06-13 20:34:40
540
原创 单例模式
参考什么是单例模式应该怎样去创建一个唯一的变量或对象?在基于对象的设计中我们可以通过创建一个全局变量或对象来实现,在面向对象和面向过程结合的设计范式(如C++中) 中,我们也还是可以通过一个全局变量实现这一点。 但是当我们遇到了纯粹的面向对象范式(Java)中,这一点可能就只能是通过Singleton模式来实现了。实现通过维护一个static的成员变量来记录这个唯一的对象实...
2018-06-12 22:14:44
247
CCSv6 License
2017-09-20
TCP/IP进行网际互联 卷1 原理、协议与结构和TCP-IP详解卷一:协议
2017-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人