summer

前言

架构的改变,往往是因为业务规模的扩张。

随着业务规模的扩张,为了满足业务对技术的要求,技术架构需要从单体应用架构升级到分布式服务架构,来降低公司的技术成本,更好的适应业务的发展。

分布式服务架构的诸多优势,这里就不一一列举了,今天围绕的话题是服务框架,为了推行服务化,必然需要一套易用的服务框架,来支撑业务技术架构升级。

服务框架

服务架构的核心是服务调用,分布式服务架构中的服务分布在不同主机的不同进程上,服务的调用跟单体应用进程内方法调用的本质区别就是需要借助网络来进行通信。

阅读全文 »

mokey

概述

本文主要分享开源物联网平台ThingsBoard的项目结构

希望通过本文能让朋友们对thingsboard的整体项目有个简单的了解。

在拉取thingsboard项目后,我们会发现拆分了很多Maven项目。是不是内心一紧,产生了恐惧感?不要方,我们就是继续怼。

ThingsBoard的项目结构

代码统计

这里先分享一个小技巧。笔者在开始源码学习时,会首先了解项目的代码量。

第一种方式,使用IDEA Statistic 插件,统计整体代码量。

ThingsBoard代码统计

我们可以粗略的看到,总的代码量在85787行。这其中还包括单元测试,示例等等代码。所以,不慌。

第二种方式,是用Shell脚本命令逐个Maven模块统计

一般情况下,笔者使用find . -name "*.java"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l 。这个命令只过滤了部分注释,所以相对IDEA Statistic偏多

当然,考虑到准确性,朋友需要手动到 cd到每个Maven项目的 src/main/java 目录下,以达到排除单元测试的代码量。

代码量

阅读全文 »

樱花树

引言

​ 合理利用线程池能够带来三个好处。

​ 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。

​ 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。

​ 第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如执掌。

dubbo RPC框架

阅读全文 »