线上服务CPU飙升 前言 功能开发完成仅仅是项目周期中的第一步,一个完美的项目是在运行期体现的 今天我们就来看看笔者之前遇到的一个问题CPU飙升的问题。 代码层面从功能上看没...
线上服务CPU飙升 前言 功能开发完成仅仅是项目周期中的第一步,一个完美的项目是在运行期体现的 今天我们就来看看笔者之前遇到的一个问题CPU飙升的问题。 代码层面从功能上看没...
全文概览 [TOC] 为什么需要hystrix hystrix官网地址github[https://github.com/Netflix/Hystrix/] Hystrix同...
申明式接口调用Feign,极大的简化了我们接口之间的调用。只需要通过注解就可以实现我们系统之间接口的调用。 关于分布式我们之前主要集中讨论了服务治理。eureka、consu...
[TOC] 之前我们介绍了管理分布式组件注册的服务;eureka、consul、zookeeper、nacos他们都可以实现我们服务的注册于获取。但是实际我们还是需要我们自己...
[TOC] zookeeper动物管理员全局把控。提供了配置管理、服务发现等服务。其本身也是可以集群化的。实现上是基于观察者模式。不想eureka/consul等同类产品需要...
[TOC] 之前我们简单介绍了rabbitmq的功能。他的作用就是方便我们的消息解耦。紧接着问题就会暴露出来。解耦就设计到双方系统不稳定问题。在mq中有生产者、mq、消费者三...
[TOC] 简介 AQS(AbstractQueuedSynchronizer)是并发开发中一个基础组件。主要实现了同步状态管理、线程队列管理、线程等待、线程唤醒等底层操作。...
[TOC] springboot 融合了很多插件。springboot相比spring来说有一下有点 自动配置: 针对很多spring的应用程序,springboot提供了很...
[TOC] mybatis运行分为两部分,第一部分读取配置文件缓存到Configuration对象中。用以创建SqlSessionFactory,第二部分是SqlSessio...
[TOC] 在我们传统的开发中我们会通过拼接sql达到数据库的操作。java中的拼接不仅效率低下而且代码很长不易维护。而Mybatis通过代理模式实现SQL语句的组装。简洁易...
[TOC] 系统的不断扩大,分布式锁是最基本的保障。与单机的多线程不一样的是,分布式跨多个机器。线程的共享变量无法跨机器。 为了保证一个在高并发存场景下只能被同一个线程操作,...
第一,没有import。第二,HelloServiceTest从哪里来。第三,严重怀疑不是原创。
[TOC] 简介 上一章节我们简单了解了二级缓存的配置。今天我们详细分析下二级缓存以及为什么不建议使用二级缓存。 一级缓存针对的是sqlsession。二级缓存针对的是nam...