Spring Boot Admin:微服务应用监控
Spring Boot Admin 可以对SpringBoot应用的各项指标进行监控,可以作为微服务架构中的监控中心来使用,本文将对其用法进行详细介绍。 SpringBoot应用可以通过Actuator来暴露应用运行过程中的各项指标,Spring Boot Admin通过这些指…
最近学到的ABTest知识
如果之前看过我文章的同学就知道我在工作中搞的是推送系统,之前写过一篇 带你了解什么是Push消息推送,里面也提到了我们或许可以做ABTest,最终提高推送消息的点击率。 那什么是ABTest呢?这篇文章带你们入门一下。 比如我写了一篇关于ABTest的文章,我希望这篇文章的阅读…
Spring Cloud Gateway:新一代API网关服务
Spring Cloud Gateway 为 SpringBoot 应用提供了API网关支持,具有强大的智能路由与过滤器功能,本文将对其用法进行详细介绍。 Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Pro…
手把手教你怎么使用云服务器
最近阿里云双十一活动服务器特便宜,如果之前关注我的同学就知道,我是建议直接上云服务器而不折腾虚拟机的(主要是可以节省时间)。 有的同学不知道服务器买了以后怎么耍,我这里给大家简单写写,希望对新人有帮助。 一般来说,我们买了服务器都是通过SSH连接去操作服务器的,我在Window…
“无处不在” 的系统核心服务 —— ActivityManagerService 启动流程解析
之前介绍 SystemServer 启动流程 的时候说到,SystemServer 进程启动了一系列的系统服务,ActivityManagerService 是其中最核心的服务之一。它和四大组件的启动、切换、调度及应用进程的管理和调度息息相关,其重要性不言而喻。本文主要介绍其启…
Spring Cloud Consul:服务治理与配置中心
Spring Cloud Consul 为 SpringBoot 应用提供了 Consul的支持,Consul既可以作为注册中心使用,也可以作为配置中心使用,本文将对其用法进行详细介绍。 Consul是HashiCorp公司推出的开源软件,提供了微服务系统中的服务治理、配置中心…
【Medium 万赞好文】ViewModel 和 LiveData:模式 + 反模式
理想情况下,ViewModel 应该对 Android 世界一无所知。这提升了可测试性,内存泄漏安全性,并且便于模块化。 通常的做法是保证你的 ViewModel 中没有导入任何 android.*,android.arch.* (译者注:现在应该再加一个 androidx.l…
Spring Cloud Sleuth:分布式请求链路跟踪
Spring Cloud Sleuth 是分布式系统中跟踪服务间调用的工具,它可以直观地展示出一次请求的调用过程,本文将对其用法进行详细介绍。 随着我们的系统越来越庞大,各个服务间的调用关系也变得越来越复杂。当客户端发起一个请求时,这个请求经过多个服务后,最终返回了结果,经过的…
Spring Cloud Bus:消息总线
Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令,本文将对其用法进行详细介绍。 我们通常会使用消息代理来构建一个主题,然后把微服务架构中的所有服务都连接到这个主题上去,当我们向该主…
Android 世界中,谁喊醒了 Zygote ?
Zygote 作为 Android 世界的受精卵,在成功繁殖出 system_server 进程之后并没有完全功成身退,仍然承担着受精卵的责任。Zygote 通过调用其持有的 ZygoteServer 对象的 runSelectLoop() 方法开始等待客户端的呼唤,有求必应。…
Spring Cloud Config:外部集中化配置管理
Spring Cloud Config 可以为微服务架构中的应用提供集中化的外部配置支持,它分为服务端和客户端两个部分,本文将对其用法进行详细介绍。 Spring Cloud Config 分为服务端和客户端两个部分。服务端被称为分布式配置中心,它是个独立的应用,可以从配置仓库…
手把手带你体验Stream流
从代码量上可以明显看出,用Stream流的方式会少一些。 我理解的Stream流编程就是:某些场景会经常用到操作(求和/去重/过滤....等等),已经封装好API给你了,你自己别写了,调我给你提供的API就好了。 如果我们想要for循环的内部支持并发的话,显然不太好去写。但使用…
Zygote家的大儿子 —— SystemServer
本篇文章的主角 system_server 进程是 Zygote 进程 fork 出的第一个进程,它负责管理和启动整个 Framework 层。 再来看看 Gityuan 的这张图片,找一下 System Server 的位置,它承载了各类系统服务的创建和启动。关于 syste…
Spring Cloud Zuul:API网关服务
Spring Cloud Zuul 是Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由与过滤功能,本文将对其用法进行详细介绍。 API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务…
Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用
Spring Cloud OpenFeign 是声明式的服务调用工具,它整合了Ribbon和Hystrix,拥有负载均衡和服务容错功能,本文将对其用法进行详细介绍。 Feign是声明式的服务调用工具,我们只需创建一个接口并用注解的方式来配置它,就可以实现对某个服务接口的调用,简…
Java 世界的盘古和女娲 —— Zygote
仔细看看下面这张 Android 体系图,找一下 Zygote 在什么地方。 上图来自 Gityuan 博客 。 纵观整个 Android 体系结构,底层内核空间以 Linux Kernel 为核心,上层用户空间以 C++/Java 组成的 Framework 层组成,通过系统…
IDEA中创建和启动SpringBoot应用的正确姿势
本文主要讲解如何在IDEA中创建、启动SpringBoot应用以及查看应用暴露监控端点的正确方式。 默认情况下,当IDEA检查到你的项目中有SpringBoot应用时,会提示你开启,如果你没开启,可以用以下方法开启。 直接在Run Dashboard中运行即可。 mall项目全…
Hystrix Dashboard:断路器执行监控
Hystrix Dashboard 是Spring Cloud中查看Hystrix实例执行情况的一种仪表盘组件,支持查看单个实例和查看集群实例,本文将对其用法进行详细介绍。 Hystrix提供了Hystrix Dashboard来实时监控HystrixCommand方法的执行情…
最近学习到的Lambda表达式
使用Lambda表达式,实际就是创建出该接口的实例对象。 从上面的代码例子可以看出,我们使用Lambda表达式创建线程的时候,并不关心接口名,方法名,参数名。我们只关注他的参数类型,参数个数,返回值。 显然使用方法引用比普通的Lambda表达式又简洁了一些。 Lambda虽然代…
Null is your friend, not a mistake
我使用 Java 语言编程已经很久很久了,掌握了通过 Java 编写和维护大型软件(百万行代码)应该注意些什么,并亲眼目睹了全行业都在竭力避免空指针异常 NullPointerException(NPE),它困扰着大大小小的 Java 类库。在 2009 年其发明者 Tony …