首页
学习
活动
专区
工具
TVP
发布

技巅

专栏作者
36
文章
40396
阅读量
30
订阅数
系统架构和代码实现的高可控性
    在软件系统架构和实现领域,大家都比较注重高可靠性、高性能、高并发。今天我想从另外一个维度说说软件系统架构与实现,那就是高可控性。为什么高可控性如此重要?因为一旦一个系统失去控制,就没有人能够评估出会产生什么样的结果。例如一个海量数据传输系统,如果不能对流量进行很好的控制,那么当大数据量来时可能把某台集群网络打满,也可能把一个交换机的网络io打满,也有可能把整个机房网络打满,导致整个机房瘫痪。     今天我就从系统架构和代码两个层面说说怎样做到高可控性。第一,作为一个合格的系统架构师在做架构设
技巅
2018-05-25
9270
腾讯云大数据产品研发实战(由IT大咖说整理)
一、TDF(数据工坊)简介 TDF简介 源于腾讯云数智大数据套件的轻量云上大数据产品,提供基于SQL的大数据计算框架。 适用于需要动态灵活获取大数据计算能力进行批量计算、日志处理或数据仓库
技巅
2018-05-25
2.3K0
“我“该学习什么技术
    谈谈我该学什么技术,以前和最近都遇到一个问题:对于工作了几年,工作内容本身没有什么技术挑战,自己又很想深入的研究技术,但是不知道该学什么了?     面对这个问题确实不好确定,因为在计算机这个大行业,特别是技术,更新换代太快了。新技术还没有学会,就已经过时了,很多新技术又出来了。编程语言也是很多,想要学深一门就特别困难,刚把基础语言和API学会,新的框架又出来了,如果你不学习新框架,在实际工作中效率又会比别人低。做了几年编程工作,想做架构,那么做架构又该学什么呢?什么分布式存储,分布式算法,w
技巅
2018-05-25
5110
利用工具思维提升工作效率
        程序员应该具有工具思维,很多人都知道好的程序员的工作效率可能是一般程序员工作效率的十倍或者甚至更高。除了程序员本身具有强大的技能和知识以外,我觉得还有更重要的工具思维。作为程序员的我们,每天都会和各种工具打交道,对于这些工具的灵活应用和熟练掌握能够极大的提高我们的工作效率。例如很多人都会使用各种IDE开发,例如eclipse。但是很多人其实只会简单的使用鼠标进行操作,对于eclipse也没有进行过调优,导致开发过程操作比较慢,运行eclipse也很慢。这样就极大的影响了我们工作的效率。但是
技巅
2018-05-25
6600
fcm的java发送代码
public static void send(String urlPath, String content) throws JSONException {         try {             URL url = new URL(urlPath);             HttpURLConnection connection = (HttpURLConnection) url.openConnection();             connection.setDoOutput
技巅
2018-05-25
1.1K0
Glusterfs之rpc模块源码分析(中)之Glusterfs的rpc模块实现(1)
二、Glusterfs的rpc模块实现 第一节、rpc服务器端实现原理及代码分析 1.rpc服务初始化 Rpc服务的初始化工作在函数rpcsvc_init中实现的,实现代码如下: rpcsvc_t * rpcsvc_init (glusterfs_ctx_t *ctx, dict_t *options) { rpcsvc_t          *svc              = NULL;//所有rpc服务的全局状态描述对象 int               
技巅
2018-05-25
1.2K0
Glusterfs之rpc模块源码分析(中)之Glusterfs的rpc模块实现(3)
第三节、rpc通信过程分析 前面两个小节分别对rpc服务端和客户端的建立流程做了详细的分析,也就是说rpc客户端和服务器端已经能够进行正常的通信了(rpc客户端已经通过connect链接上rpc服务器了),那么这一小节主要根据一个实际的例子来分析一个完整的rpc通信过程。 下面以客户端创建逻辑卷(volume)为例来分析rpc的通信过程,就以下面这个客户端的命令开始: gluster volume create test-volume server3:/exp3 server4:/e
技巅
2018-05-25
1.1K0
Glusterfs之rpc模块源码分析(中)之Glusterfs的rpc模块实现(2)
第二节、rpc客户端实现原理及代码分析 rpc客户端主要发起一个rpc请求,执行完rpc请求以后就退出rpc,下面分析客户端rpc请求建立的整个过程。Rpc客户端请求建立的第一步是执行cli_rpc_init函数,主要实现代码如下:         this = THIS;//取得本线程的xlator列表         cli_rpc_prog = &cli_prog;//设置rpc调用过程集合(许多函数)         options = dict_new ();//新建一个字典数
技巅
2018-05-25
7190
一个大型互联网公司高级技术的远程面试题目和解答过程以及源代码
一,题目 Instruction: Please complete the following task. Use whatever tools you find appropriate (using the Internet, for example, is assumed). Linux, C++, Python, CMake, Qt, and OpenCV are preferred for development but you may use other tools if you
技巅
2018-05-25
7130
Thrift之TProcess类体系原理及源码详细解析
之前对Thrift自动生成代码的实现细节做了详细的分析,下面进行处理层的实现做详细分析了!会利用到自动代码生成的知识。 这部分是协议层和用户提供的服务实现之间的纽带,定义了调用服务实现的接口框架,真正实现某种服务接口是通过上一章介绍的代码生成工具生成的代码。本章将介绍这个框架的基本原理,然后通过生成的一个实例来具体介绍怎样完成一次完整的服务,这个可能涉及到下面章节的一些知识,对于这些知识不详细分析其功能,只是介绍它在其中起什么作用。选择的实例是Facebook内部用这个框架实现的一个分布式日志收集系统sc
技巅
2018-05-25
1K0
linux内核崩溃问题排查过程总结
1.概述 某年某月某日某项目的线上分布式文件系统服务器多台Linux系统kernel崩溃,严重影响了某项目对外提供服务的能力,在公司造成了不小影响。通过排查线上问题基本确定了是由于linux内核panic造成的原因,通过两个阶段的问题排查,基本上确定了linux内核panic的原因。排查问题的主要手段就是网上查找资料和根据内核错误日志分析并且构造条件重现。本文档就是对自己在整个问题排查过程中的总结。 2.第一阶段 因为刚出现问题的时候大家都比较紧急,每天加班都很晚,也制定了很多问题重现和定位原因的计划
技巅
2018-05-25
4.4K0
开源软件实践之linux高性能服务器编程框架和选型
很多人学习编程技术一般都通过一本编程语言的入门书籍,然后尝试做一些例子和小项目。但是这些都不能让我们深入的学习很多的编程技巧和高深技术,当然这个时候很多有经验的学习人员就会告诉大家,找一个好的开源软件理解它的设计与实现原理,阅读开源项目的源代码,都知道源码之前了无秘密。我也承认读源码能够快速提高我们的编程能力和编程思维,我也经常研究很多项目的源代码,有些是工作需要,有些是兴趣。但是我今天想说的都不是这些,我想说的是更高一层的学习方案,就是通过自己的实践实现一个开源软件,也许这个开源软件没有任何人使用,但
技巅
2018-05-25
1.5K0
IT技术水平会像贫富差距一样越来越大
IT技术人员的水平会像贫富差距一样越来越大        大家都知道IT技术的发展日新月异,每天都在变化,而且变化的很快。现在上层应用的开发变得越来越简单了,因为现在的开发框架和服务变得越来越好用和简单了,很多做应用层开发的都只需要简单谢谢业务逻辑就可以完成一个项目了。但是这也导致了很多技术人员的编程能力和系统设计水平越来越低了,他们享受这些成熟框架和技术带给他们的遍历,不仅开发效率更高了,而且越来越简单了,很多功能只需要简单配置一下或者按照月底的规则实现就OK了。前端时间听一个使用了spring b
技巅
2018-05-25
5680
Glusterfs之rpc模块源码分析(上)之RPC概述
一、RPC概述 第一节、RPC结构网络 RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先
技巅
2018-05-25
7850
Thrift之代码生成器Compiler原理及源码详细解析3
3 生成C++语言代码的代码详解 这个功能是由t_cpp_generator类实现(在文件t_cpp_generator.cc定义和实现),直接继承至t_oop_generator类(这个类是所有面向对象语言生成器类的直接基类,封装了面向对象语言生成器共有的特征与行为),而t_oop_generator又从t_generator继承(上面已经介绍),下面详细分析这个类是怎样生成C++语言的代码文件的。这个还有从上面介绍的generate_program函数开始说起,因为这个函数才是控制整个代码生成
技巅
2018-05-25
1.3K0
Thrift之代码生成器Compiler原理及源码详细解析2
2  t_generator类和t_generator_registry类 这个两个类的主要功能就是为生成所有语言的代码提供基础信息和提供具体代码生成器对象,上面就是调用这个两个类的方法来生成具体语言的代码生成器对象和执行生成代码的功能函数。下面主要分析两个函数的功能,一个是t_generator_registry类的get_generator函数,这个是一个静态的函数可以直接通过类调用;另一个是t_generator类的generate_program函数。 (1)t_generator_re
技巅
2018-05-25
9160
Thrift之代码生成器Compiler原理及源码详细解析1
又很久没有写博客了,最近忙着研究GlusterFS,本来周末打算写几篇博客的,但是由于调试GlusterFS的一些新增功能就用了整整的一天,还有一天就陪老婆大人逛街去了!今晚浏览完微博发现时间还早就来博客一篇,本篇博客内容主要是前一段时间研究的Thrift的代码生成器的源码详细分析,没有具体分析语法解析,因为是工具字段生成的代码,人是没有办法阅读的—-到处都是跳转表!由于Thrift支持N多种语言,但是生成代码原理都差不多,我主要分析了C++相关代码生成。关于Thrift的使用及原理、代码网上基本上都有
技巅
2018-05-25
1.4K1
GlusterFS之内存池(mem-pool)实现原理及代码详解
最近一直在研究glusterfs的源代码,自己也在上面做了一些小的改动。我最开始研究的是3.2.5这个版本,因为据同行和网上资料显示这个版本目前是最稳定的版本。glusterfs实现比较复杂,具体的设计思想和架构就不详细介绍了,网上有这方面的资料(CSDN博客里面就有很好介绍的文章)。         研究开源系统的一个好处就是可以充分了解它的实现,如果是看这方面的论文只能了解一些原理性的东西,但是我们真正做项目还需要实际的实现。很多开源系统可能本身不一定就很适合你的系统,但是如果可以改造那么利用
技巅
2018-05-25
1.1K0
GlusterFS之内存池(mem-pool)使用实例分析
上一篇博客详细分析了GlusterFS之内存池的实现技术,今天我们看看GlusterFS是怎么使用这个技术的。 第一步:分配和初始化: cli进程在初始化的过程中会涉及到内存池的建立和初始化,具体涉及到内存池初始化的代码如下(在cli.c文件中的glusterfs_ctx_defaults_init函数): [cpp] /* frame_mem_pool size 112 * 64 */ pool->frame_mem_pool = mem_pool_new (call_fram
技巅
2018-05-25
1.1K0
Glusterfs之nfs模块源码分析(中)之Glusterfs实现NFS服务器
五、Glusterfs实现NFS服务器 第一节、启动过程分析 Glusterfs的nfs服务器启动命令如下:  /usr/local/sbin/glusterfs -f /etc/glusterd/nfs/nfs-server.vol -p /etc/glusterd/nfs/run/nfs.pid   -l /usr/local/var/log/glusterfs/nfs.log 说明:所有列出的代码都把错误处理、参数检查和日志输出去掉了! 上面的命令会启动gluster
技巅
2018-05-25
1.7K0
点击加载更多
社区活动
技术热点征文第六期
Mojo?正式开源,来聊聊比 Python 快 90,000 倍的技术?
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档