框架
文章平均质量分 53
K-Darker
1、每天读书;2、学习新的语言;3、战胜你的恐惧;4、升级你的技能;5、承认自己的缺点;6、向你佩服的人学习
展开
-
怎么读官方文档
1.首先理解一些关键的标题Tutorials教程Features产品特点Integration集成summary摘要FAQ常见的问题和解答Issue问题2.就是选择版本,了解版本的含义版本:SNAPSHOT 快照 alpha 项目组内部测试版 beta使用人员版本 RELEASE(RC) GA(可靠版)RC1原创 2017-05-09 14:50:29 · 635 阅读 · 0 评论 -
Spring-Boot原理分析
Spring-Boot本质Spring-Boot的本质用于快速去构建一个web工厂快速的集成各种组件。解决了我们复杂的依赖包的管理。解决了我们集成中各种配置bean的统一管理的问题。Spring-Boot 的介绍快速的创建web工程依赖的快速引入快速启动首先Spring-boot约定俗成的规则1、 Bean扫描的BasePackage为启动类所在的包就是main方法...原创 2019-06-09 11:32:05 · 174 阅读 · 0 评论 -
SpringCloud之注册中心 --(Eureka)
微服务SpringCloud介绍Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, in...原创 2019-06-14 17:00:19 · 195 阅读 · 0 评论 -
手写Spring(AOP)
Spring(AOP)AOP 介绍AOP(Aspect Oriented Programming) 面向切面编程。IOC/DI:AOP的核心是IOC必须在容器里面管理。采用动态代理对类对象进行增强。为什么需要AOP需要原因在不改变代码情况下对方法进行增强在类的方法的层面进行增强 ,首先思考的是在哪里进行对bean的增强在类字节码上增强 带有入侵性在对象上动态代理增强 ...原创 2019-06-03 19:57:39 · 493 阅读 · 0 评论 -
SpringCloud之负载均衡 --(Ribbon)
Ribbon介绍Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一...原创 2019-06-19 17:40:51 · 181 阅读 · 0 评论 -
手写Spring(配置)
Spring(配置)为啥提供配置配置管理bean更加灵活,不需要修改代码。选择什么样的配置(xml – 配置复杂 或者 注解 – 带有入侵性) 所以都需要支持。配置是属于那一阶段的,什么需要在配置体现。Spring配置的流程思路首先我们先看Bean的初始化流程(通过配置的方式)我们的配置目的是创建bean的定义对象我们先定义一些接口创建bean的接口规范和bean隔离开...原创 2019-06-04 21:51:46 · 286 阅读 · 1 评论 -
SpringCloud之熔断 --(Hystrix)
Hystrix(熔断)Hystrix介绍服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C有调用其他的微服务,这就是所谓的”扇出”,如扇出的链路上某个微服务的调用响应式过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统雪崩,所谓的”雪崩效应”这里的雪崩效应:在redis里面也是存在的,缓存穿透等,在大并发的情况下保证服务的一个...原创 2019-06-21 18:48:12 · 172 阅读 · 0 评论 -
SpringCloud之熔断 --(Hystrix)源码分析
Hystrix(熔断)动态的修改熔断配置背景:hystrix 熔断过程问题 和日志问题 需要熔断的场景 动态改变我们的配置参数 智能化其实本身的HystrixCommand 注解也是通过切面配置的,我们这边可以通过自定义注解动态加入@Aspect@Componentpublic class MyHystrixCommandAspect { public static Boole...原创 2019-06-26 19:38:17 · 711 阅读 · 1 评论 -
SpringCloud之声明式客户端 --(Fegin)源码分享
Fegin(声明式的web服务客户端)Fegin介绍Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易。使用Fegin创建一个接口并对它进行注解。它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageC...原创 2019-06-27 19:27:19 · 236 阅读 · 0 评论 -
领域驱动设计-- 分层架构
领域驱动设计的经典分层架构领域驱动设计在经典三层架构的基础上做了进一步改良,在用户界面层与业务逻辑层之间引入了新的一层,即应用层(Application Layer)。同时,一些层次的命名也发生了变化,将业务逻辑层更名为领域层自然是题中应有之义,而将数据访问层更名为基础设施层(Infrastructure Layer),则突破了之前数据库管理系统的限制,扩大了这个负责封装技术复杂度的基础层次的内...原创 2019-07-09 21:40:01 · 3869 阅读 · 0 评论 -
SpringCloud之网关 --(Zuul)
Zuul 介绍This project provides a library for building an API Gateway on top of Spring MVC. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting co...原创 2019-06-29 16:06:27 · 355 阅读 · 0 评论 -
领域驱动设计-- 模型
什么是模型从领域驱动的战略设计进入战术设计,简单说来,就是跨过系统视角的限界上下文边界进入它的内部,从分层架构的逻辑分层进入到每一层的内部。在思考内部的设计细节时,首先需要思考的问题就是:什么是模型(Model)?模型是从哪里来的,怎么得出来的。注:这里的模型不仅仅是我们数据库建模还是来看看 Eric Evans 对模型的阐述:为了创建真正能为用户活动所用的软件,开发团队必须运用一整套与...原创 2019-07-06 12:23:58 · 721 阅读 · 0 评论 -
手写Spring(IOC/DI)
Spring(IOC/DI )IOC/DI 介绍IOC:Inversion Of Control (创建对象有自己变成了容器)。DI: Dependcy injection (注入的参数包含构造参数和属性)。IOC/DI 是核心,分析为什么需要IOC和DI,怎么去实现他们。为什么需要IOC/DI需要原因我们开发应用有了三层架构(Controller Service Dao)首先...原创 2019-06-02 16:38:35 · 314 阅读 · 0 评论 -
Spring的核心源码分析
Spring的扩展源码分析Spring的核心是 refresh在refresh之前必然是完成了文件或者注解的扫描生成了BeanDefinition。在refresh会初始化我们的工厂,增强我们的bean,提供子类的扩展方法等。Spring的refresh核心就是 提供了BeanFactoryPostProcessor和BeanPostProcessor分配增强我们的Bean。Bean...原创 2019-06-07 21:06:41 · 163 阅读 · 0 评论 -
手写Spring的MVC
Spring的MVCMVC 概念MVC是一种软件设计典范。将业务逻辑,界面显示,和模型层分开。数据,控制和视图。MVC的流程流程MVC的请求流程DispatchServlet 是核心类用于分发请求的,需要将我们MVC的相关的类注入到我们的Bean工厂中会有一个请求分派和结果渲染的操作总图:分析一下:首先SpringMVC的会逐渐被SpringBoot取代,Spring...原创 2019-06-06 19:05:58 · 162 阅读 · 0 评论 -
Redis的安装与使用
Redis 的安装与使用(单节点)IP:192.168.4.111环境:CentOS 6.6Redis 版本:redis-3.0 (考虑到 Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,而且很快就出正式版)安装目录:/usr/local/redis用户:root编译和安装所需的包:# yum install gcc tcl下载 3.0原创 2017-05-22 16:06:29 · 187 阅读 · 0 评论 -
redis整合spring mybatis --缓存方案
一、Spring集成redis1.在resource目录下创建spring-redis.xml文件,内容如下:beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://ww转载 2017-06-08 18:23:23 · 406 阅读 · 0 评论 -
Spring 配置redis的单节点和集群节点
使用SpringData更加方便我们对关系型数据库和非关系型数据库更好的操作,封装了通用的代码,使得操作更加快捷简单。一、Spring Data Redis的配置引入相关jar包,注意依赖和冲突问题。maven 引入pom.xml:dependency> groupId>junitgroupId> artifactId>junitartifactId>转载 2017-06-30 15:49:19 · 4870 阅读 · 2 评论 -
Spring Cache抽象详解
缓存简介缓存,我的理解是:让数据更接近于使用者;工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存);缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/IO)的且对于相同的请求有相同的计算结果的数据。如CPU--L1/L2--内存--磁盘就是一个典型的例子,CPU需要数据时先从L1/L2中读取,如果没有到内存中找,如果还没有会到磁盘上找。还有如用过M转载 2017-06-23 12:55:24 · 188 阅读 · 0 评论 -
Mycat1.5前端idle timeout 分析之路一
一、Mycat的请求报文分析 SQL语句show warnings 分析Mycat请求Mysql,CMD请求Mysql,jdbc请求MySql返回的消息的格式是不一样的原创 2018-06-08 14:46:03 · 3261 阅读 · 0 评论 -
领域驱动设计达到领域共识(敏捷模式)
领域驱动设计的核心是“领域”,因此要运用领域驱动设计,从一开始就要让团队走到正确的点儿上。当我们组建好了团队之后,应该从哪里开始?不是 UI 原型设计、不是架构设计、也不是设计数据库,这些事情虽然重要但却非最高优先级。试想,项目已经启动,团队却并不了解整个系统的目标和范围,未对系统的领域需求达成共识,那么项目开发的航向是否会随着时间的推移而逐渐偏离?用正确的方法做正确的事情,运用领域驱动设计,就是...转载 2018-10-04 22:07:27 · 1176 阅读 · 0 评论 -
Zipkin进行链路跟踪
Zipkin 简介Zipkin 是 Twitter 开源的分布式跟踪系统,基于 Dapper 的论文设计而来。它的主要功能是收集系统的时序数据,从而追踪微服务架构的系统延时等问题。Zipkin 还提供了一个非常友好的界面,便于我们分析追踪数据。SpringCloudSleuth 简介通过 SpringCloud 来构建微服务架构,我们可以通过 SpringCloudSleuth 实现分布式追...原创 2019-03-22 16:10:43 · 1215 阅读 · 0 评论 -
使用zuul实现动态路由
前言Zuul 是Netflix 提供的一个开源组件,致力于在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。也有很多公司使用它来作为网关的重要组成部分,碰巧今年公司的架构组决定自研一个网关产品,集动态路由,动态权限,限流配额等功能为一体,为其他部门的项目提供统一的外网调用管理,最终形成产品(这方面阿里其实已经有成熟的网关产品了,但是不太适用于个性化的配置,也没有集成权限和限流降级)。不...原创 2019-03-31 13:35:35 · 8788 阅读 · 1 评论 -
Eurka 微服务注册中心(Server) - 源码分析
Eureka 简介Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。作为服务注册中心,Eureka比Zookeeper好在哪里著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P...原创 2019-04-01 17:03:28 · 672 阅读 · 0 评论 -
阅读Spring源码
如何阅读Spring源码学习源码的思路为扩展 调优 : 掌握框架的工作流程和原理。提升自己的编程能力:学习他人的设计模式和思路。掌握设计方法和分析思路。学习源码的方法思路掌握问题域理论和核心概念:搞明白做什么,如何做从整体到部分找到入口,先理清主干流程,后细节多思考,多分析文档查看流程文档地址https://spring.io/ 官网https://githu...原创 2019-06-05 17:41:10 · 260 阅读 · 0 评论 -
DDD之挖掘通用语言实战
通用语言作用团队成员概念统一,理解一致,有文档落地。帮助产品快速理解用户需求 》帮助工程师快速理解业务需求 》帮助工程师落地能实现用户需求的代码。深入理解领域上下文是什么,能干什么,以及和其他领域上下文的边界。通用语言的统一:有上下文 有文档的三方(用户 产品 开发 测试)达成一致标准确认上下文边界也是确认不同系统之间边界通用语言的定义和表达1:说明了...原创 2019-07-20 18:15:46 · 568 阅读 · 0 评论