ES作为强大的和流行的搜索引擎服务组件,为我们提供了方便的和高性能的搜索服务.在实际应用中也是用得比较爽,但如果能够更深入一点.虽然网上有许多的文章已经完整说明,ES是如何如何做到高性能,如何做到高可用的,以及有许多的避坑指南.那些,毕竟还是太描述化. 就让我们以源码作为出发点,一探ES究竟吧,虽然也可能是片面的. 1. ES编译及准备 害,其实我们不想搞编译.一个是意义不大:二个是ES是用java编写的,打包后本质上它就是一个war包或者jar包:三个是编译需要拉取外部的许多jar包依赖,而这…
曹工说Redis源码(5)-- redis server 启动过程解析,eventLoop处理事件前的准备工作(下) 文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于我用c也是好几年以前了,些许错误在所难免,希望读者能不吝指出. 曹工说Redis源码(1)-- redis debug环境搭建,使用clion,达到和调试java一样的效果 曹工说R…
文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于我用c也是好几年以前了,些许错误在所难免,希望读者能不吝指出. 曹工说Redis源码(1)-- redis debug环境搭建,使用clion,达到和调试java一样的效果 一些补充知识 项目结构及入口 除了大学那些玩具,一个真正的项目,都是由大量源代码文件组成一个工程.在Java里,一个 java…
文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于我用c也是好几年以前了,些许错误在所难免,希望读者能不吝指出. 曹工说Redis源码(1)-- redis debug环境搭建,使用clion,达到和调试java一样的效果 曹工说Redis源码(2)-- redis server 启动过程解析及简单c语言基础知识补充 本讲主题 首先,会再补充一点c…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6629298 在前面一篇文章浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路中, 介绍了在Android系统中Binder进程间通信机制中的Server角色是如何获得Service Manager远程接口的,即defaultServiceManager函数的实现.S…
我们知道在SqlServer实例启动过程中数据库会进行还原(Redo,Undo)然后打开提供服务,但我们知道tempdb是不提供重做机制的(Redo)那tempdb是如何还原的呢?如果tempdb损坏我们该怎么办,这里我将通过实例给大家介绍. 有时tempdb因为一些原因会变得非常巨大,一些DBA的解决方式就是重启数据库实例,的确重启后tempdb就会恢复到初始设置大小,理由很简单tempdb会重新创建. Tempdb的创建过程. 1在model库打开后进行tempdb创建(可以日志中看到mod…
简介 Window简介 Android中,Window是一个重要部分,用户看到的界面.触摸显示界面进行一系列操作都涉及到Window.但实际上,Window本身并不具备绘制功能. 该篇简单介绍下Window的一点内容,同时总结下WMS的启动过程.在下篇会逐步介绍一个Activity是如何创建出窗口 并 添加到WMS中的. 该篇基于Andorid10的代码. 窗口涉及到一下几个功能: 窗口管理-WMS WMS管理窗口的创建.添加.删除.大小.层级等等. 输入中转-IMS(InputManagerS…
jvm是java的核心运行平台,自然是个非常复杂的系统.当然了,说jvm是个平台,实际上也是个泛称.准确的说,它是一个java虚拟机的统称,它并不指具体的某个虚拟机.所以,谈到java虚拟机时,往往我们通常说的都是一些规范性质的东西. 那么,如果想要研究jvm是如何工作的,就不能是泛泛而谈了.我们必须要具体到某个指定的虚拟机实现,以便说清其过程. 1. 说说openjdk 因为java实际上已经被oracle控制,而oracle本身是个商业公司,所以从某种程度上说,这里的java并不是完全开源的…
前面对Eureka的服务端及客户端的使用均已成功实践,对比Zookeeper注册中心的使用区别还是蛮大的: P:分区容错性(⼀定的要满⾜的)C:数据⼀致性 A:⾼可⽤:CAP不可能同时满⾜三个,要么是AP,要么是CP. 就使用而言最明显就是Zookeeper需要安装3个或3个以上服务端安装启用才能构成集群而Eureka导入依赖处理配置文件同时开启Eureka Server自动装配即可.Zookeeper具体使用可参考Zookeeper应用之一:数据发布与订阅初体验 - 池塘里洗澡的鸭子 - 博客…
一.序言 当我们在编写Java应用的时候,很少会注意Java程序是如何被运行的,如何被操作系统管理和调度的.带着好奇心,探索一下Java虚拟机启动过程. 1.素材准备 从Java源代码.Java字节码.Java虚拟机.操作系统四个角度分解启动过程. public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld!"); } } 2.源代码生成字节码 利用J…