- 博客(28)
- 收藏
- 关注
原创 跨代引用
什么是跨代引用? 跨代引用是指新生代中存在对老年代对象的引用,或者老年代中存在对新生代的引用,如下图所示: 跨代引用存在问题 YGC时,为了找到年轻代中的存活对象,不得不遍历整个老年代;反之亦然。这种方案存在极大的性能浪费。因为跨代引用是极少的,为了找出那么一点点跨代引用,却得遍历整个老年代!解决方案:记忆集 记忆集就是用来记录跨代引用的表,通过引入记忆集避免遍历老年代...
2018-07-30 17:41:58 3394
原创 InnoDB VS MyISAM
区别事务:InnoDB支持事务,而MyISAM不支持;行锁:InnoDB支持行锁,而MyISAM不支持;索引:InnoDB是聚簇索引,数据和索引在同一个文件;而MyISAM是非聚簇索引,数据和索引是独立的;全文索引:InnoDB不支持全文索引,而MyISAM支持;统计行数:InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描;而MyI...
2018-07-29 09:46:14 342
原创 RESTFUL理解
RESTful是什么? Http协议作者提倡的一种协议使用风格:用HTTP动词(GET,POST,DELETE等)描述操作,用URL定位资源;RESTful提出背景 随着Http协议的广泛使用,越来越多的开发人员都将其作为传输协议,而非原先设计者所考虑的应用协议。SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载,以至于对于Http...
2018-07-27 11:24:09 231
原创 前后端分离演化史
什么是前后端分离?过去,前后端分离是从物理上做区分的:认为只要是客户端的就是前端,服务器端的就是后端;当前,前后端分离从职责上进行划分:前端负责 View 和 Controller 层,后端只负责 Model 层; MVC模式 缺点:前后端代码混杂在一起,前端开发重度依赖后端的开发环境,且部署成本大;前后端职责不够明确,Controller仍处于灰色地带,页面路由等功...
2018-07-24 17:05:14 1966
原创 @EnableAspectJAutoProxy
作用 开启切面编程功能;使用 @Configuration @EnableAspectJAutoProxy public class AppConfig { }原理通过@Import导入AspectJAutoProxyRegistrar;通过@Configuration解析器注册AnnotationAwareAspectJAutoProxyC...
2018-07-22 19:20:49 3371
原创 AOP基础概念
基础概念连接点JoinPoint:某个具体方法;切点PointCut:用AspectJ切面编程语言描述的规则,给满足规则的连接点添加Advice;增强Advice:增强逻辑;切面Aspect:PointCut和Advice的组成;将增强逻辑织入目标对象的过程;开启切面编程方式一:注解@EnableAspectJAutoProxy与@Configuration搭配...
2018-07-22 15:34:45 125
原创 Spring 容器创建和Bean生命周期
生命周期详解参考:https://www.cnblogs.com/zrtqsk/p/3735273.html;
2018-07-19 17:36:39 196
原创 Bean属性设置过程
分类Bean属性设置分为两大类,如下:将外部配置文件中的值设置为属性值,常用@PropertySource和@Value组合;将容器中其它bean注入,常用@Autowired或@Resouce注解;处理器AutowiredAnnotationBeanPostProcessor处理逻辑分为两大步,如下:作为接口MergedBeanDefinitionPostProc...
2018-07-19 12:06:00 520
原创 Bean的初始化过程
初始化过程 bean实例化 –> 属性设置 –> afterPropertiesSet() –> init-method 初始化实现注解@Bean 通过注解@Bean属性initMethod和destroyMethod设置初始化和销毁方法;接口InitializingBean 对于InitializingBean的实现类,Sprin...
2018-07-18 21:27:14 942
原创 BeanFactoryPostProcessor
作用 在BeanFactory加载完所有bean定义后,对BeanFactory进行逻辑增强;public interface BeanFactoryPostProcessor { /** * Modify the application context's internal bean factory after its standard * initial...
2018-07-17 14:49:56 179
原创 BeanPostProcessor
作用 Bean的后置处理器,在初始化方法init-method前后,进行逻辑增强,Spring内置了很多实现类,常见的有ApplicationContextAwareProcessor、AutowiredAnnotationBeanPostProcessor等等,定义如下所示:public interface BeanPostProcessor { /** * App...
2018-07-16 11:07:48 657
原创 scan流程
扫描流程将basePackage路径下的所有class文件加载到内存;根据类的元信息进行过滤(excludeFilters/includeFilters); protected boolean isCandidateComponent(MetadataReader metadataReader) throws IOException { for (TypeFil...
2018-07-16 09:40:10 406
原创 HTTP/2连接建立过程
连接过程 HTTP/2连接建立过程可以分为两大步:协议协商(Http1.x升级到Http2.0);连接的初始化;协议协商协议流程Netty实现Client发送升级请求pipeline中添加handler: private void configureClearText(SocketChannel ch) { HttpClientCod...
2018-07-13 10:23:48 3914
原创 Mqtt功耗测试
参考:http://stephendnicholas.com/posts/power-profiling-mqtt-vs-https
2018-07-10 09:56:00 1809
原创 Service Mesh学习资料整理
Service Mesh中文社区:http://www.servicemesher.com/;敖小剑个人网站:https://skyao.io/#about;
2018-07-09 20:52:04 1072 1
原创 Maven单继承问题
单继承parent 在maven多模块项目中,为了方便依赖的统一管理,引入parent标签。以SpringBoot为例进行说明,在parent的dependencyManagement中对子模块的所有依赖进行声明,如下所示: <dependencyManagement> <dependencies> <!-- Spri...
2018-07-09 10:59:23 751
转载 消息中间件MetaQ高性能原因分析
转载:https://yq.aliyun.com/articles/52533?spm=a2c4e.11153940.blogcont93815.18.626e2684nqgU88#序列化和反序列化各序列化框架时间性能对比: 各序列化框架空间性能对比: 综合来看,Google的Protocol Buffers是最佳选择,不管软件的质量、社区活跃、软件的后续发展上来说,都...
2018-07-09 09:33:49 519
原创 微服务/ Spring Boot / Spring Cloud
微服务 微服务是一种“化整为零、分而治之”的思想。具体而言,微服务提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 “Microservices”概念的提出者Martin Fowler的描述如下...
2018-07-08 16:33:22 251
原创 微服务架构选型:Dubbo VS Spring Cloud
定位 Dubbo 的定位始是RPC 框架,而 Spring Cloud 的目标是微服务架构下的一站式解决方案。在架构功能角度, Dubbo是Spring Cloud的一个子集,具体对比如下: RPC vs REST代码侵入性。对于RPC调用方式,服务提供方和调用方之间需要强依赖接口,存在代码级别的入侵;对于REST调用方式,服务提供方和调用方之间只有约定,没有代码上的侵入;...
2018-07-08 15:54:47 729
原创 ConfigServer架构
ConfigServer2.0架构Consumer/Provider启动时,通过统一域名从Address Server获取ConfigServer集群的地址列表;Provider随机选取一台机器建立长连接,并进行服务注册;ConfigServer集群中的机器接受到服务注册信息后,广播到集群其它机器;ConfigServer集群中的机器推送对应的服务注册信息到连接的Consumer;...
2018-07-07 17:56:50 2992 1
原创 Eureka
Eureka简介 Eureka是Netflix出品的用于实现服务注册和发现的工具,类似于阿里的ConfigServer,其架构如下所示: Eureka VS ZooKeeper 二者最本质区别:在CAP原则中,Eureka保证AP,ZooKeeper保证CP。在服务发现领域,更重要的是可用性,可接受短暂的数据不一致情况,因此在服务发现领域,Eureka比ZooKeeper更适合。...
2018-07-07 11:19:03 336
原创 Spring Boot配置文件
配置获取顺序 多环境配置命名规范: application-{profile}.properties,profile表示不同环境,如日常、预发和线上等; 文件路径:与application.properties相同; 环境指定:在application.properties文件中进行设定:spring.profiles.active={profile}; 使用说明:...
2018-07-04 19:19:16 218
原创 Starter Pom
作用 在POM文件添加场景所需的Starter Pom,Spring Boot会自动配置相应的Bean,不需要XML配置文件;Spring Boot内置的Starter Pom Spring Boot内置的Starter Pom统一集中在spring-boot-autoconfigure包中,如下图所示: 关键技术点META-INF/spring.factories中需...
2018-07-04 12:25:05 425
原创 Spring Boot日志配置
日志体系 Spring Boot 使用commons-logging作为日志接口,目前支持Log4J2、Logback和JUL( Java Util Logging) 三种实现方式,如下图所示: spring-boot-starter-logging作用:使用Logback日志框架; 实现原理:如果存在slf4j接口,则将其桥接到commons-logging;使用L...
2018-07-03 17:00:49 257
原创 自动配置@EnableAutoConfiguration
作用 根据pom中添加的jar依赖自动配置Spring,比如添加spring-boot-starter-web,Spring Boot会自动添加Tomcat和Spring MVC相关配置。自动装配原理 @EnableAutoConfiguration实现的关键在于引入了AutoConfigurationImportSelector,其核心逻辑为selectImports方法,逻辑大...
2018-07-02 19:56:09 4371
原创 SpringApplication构造过程分析
构造函数设置Spring容器的初始化逻辑ApplicationContextInitializer;设置Spring容器的监听器ApplicationListener;获取启动类的Class对象;public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { ...
2018-07-02 10:18:56 257
原创 组合注解与元注解
概念元注解: 可以注解到别的注解上的注解;组合注解:被注解的注解;组合注解好处简单化注解配置,一个组合注解可以代表多个有特定属性值的元注解;提供了很好的扩展性,可以根据实际需要灵活的自定义注解。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @inter...
2018-07-01 11:38:04 1285
原创 @Configuration
作用 声明当前类是一个配置类,相当于一个Spring的XML配置文件,与@Bean配合使用。 Instead of using the XML files, we can use plain Java classes to annotate the configurations by using the @Configuration annotation. If you an...
2018-07-01 09:12:14 6226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人