rocketMQ 架构示意图 组件介绍:NameServer: 主要负责对于源数据的管理,包括了对于Topic和路由信息的管理。 NameServer是一个功能齐全的服务器,其角色类似Dubbo中的Zookeeper,但NameServer与Zookeeper相比更轻量。主要是因为每个NameServer节点互相之间是独立的,没有任何信息交互。 NameServer压力不会太大,平时主要开销是在维持心跳和提供T 2020-05-30 中间件 MQ
设计模式 设计模式设计模式的六大原则 开闭原则 对扩展开放,对修改封闭 里氏代换原则 任何基类可以出现的地方,子类一定可以出现。 依赖倒转原则 抽象不应该依赖于细节,细节应该依赖于抽象 接口隔离原则 使用多个专门的接口,而不使用单一的总接口 迪米特法则,又称最少知道原则(Demeter Principle) 一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立 合成复用原则 尽量使用对象 2020-02-20 Java
Java并发 主要的问题: 什么是多线程 如何实现多线程 多线程的问题及解决方法 1.什么是多线程 进程与线程:进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位) 一个程序至少有一个进程,一个进程至少有一个线程。 进程,是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。它的执行需要系统分配资源创建实体之后,才能进行。 线程是进程的 2020-01-23 Java
lombok注解详解 原理一般我们使用的注解的@Retention一般为RUNTIME,对于这种注解,我们只在运行时加载,通过反射获取对应的注解值 lombok的注解采用@Retention的元注解为SOURCE,它会在编译时进行解析,采用的方式是Pluggable Annotation Processing API 1234567891011举例来说,现在有一个实现了Pluggable Annotation Proc 2020-01-15 Java
mybatis Genrator MyBatis Generator是一个可以用来生成Mybatis dao,entity,Mapper文件的一个工具,在项目的过程中可以省去很多重复的工作,我们只要在MyBatis Generator的配置文件中配置好要生成的表名与包名,然后运行一条命令就会生成一堆文件。 123456789101112131415161718192021222324252627282930313233343536 2020-01-10 Java 开发工具
Spring学习 Spring主要框架核心模块: spring-core模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。 spring-beans 模块提供 BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦。 context模块建立在由core和 beans 模块的基础上建立起来的,它以一种类似于JNDI注册的方式访问对象。Context模 2020-01-10 框架学习 Java
UML类图 UML类图的元素1.类类包括:类的属性和类的方法(抽象方法用斜体表示) 还有作用域 + public -private # protected 2.接口接口是特殊的类,只可以被实现,不可以被实例化。 3.类之间的关系实线三角指向父类(泛化)代码实现:子类继承父类 虚线三角指向接口(实现)代码实现:接口实现 空心菱形能分离而独立存在(聚合)代码实现:成员变量,个体可以独立于整体存在,菱形在整 2020-01-01 开发工具
dubbo学习 Dubbo概述Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力: 面向接口的远程方法调用 智能容错和负载均衡 服务自动注册和发现 简单来说 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 RPC原理RPC定义:远程过程调用,是一种网络协 2019-12-20 Java 中间件