
架构
文章平均质量分 91
harryptter
这个作者很懒,什么都没留下…
展开
-
Redis 内部原理 思维导图
原创 2018-11-13 17:09:41 · 347 阅读 · 0 评论 -
数据库查询的N+1问题
转载自:https://blog.youkuaiyun.com/w05980598/article/details/79647291简介在orm框架中,比如hibernate和mybatis都可以设置关联对象,比如user对象关联dept假如查询出n个user,那么需要做n次查询dept,查询user是一次select,查询user关联的dept,是n次,所以是n+1问题,其实叫1+n更为合理一些。...转载 2018-12-30 11:29:06 · 514 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor使用和分析(一)
转载自:http://www.cnblogs.com/trust-freedom/p/6594270.html线程池是可以控制线程创建、释放,并通过某种策略尝试复用线程去执行任务的一种管理框架,从而实现线程资源与任务之间的一种平衡。 以下分析基于 JDK1.7 以下是本文的目录大纲:目录一、线程池架构1、Executor接口2、ExecutorServ...转载 2018-12-25 18:40:48 · 242 阅读 · 0 评论 -
mysql innodb事务和锁详解
mysql 当使用innodb时候,是支持事务和行级锁的,本篇作为自己理解的一个梳理。目录简介事务的ACID特性:mysql开启事务的方法事务并发可能会遇到的问题:1.赃读2.幻读3.不可重复读数据库的隔离级别mySql中的锁一次封锁or两段锁 行锁分类:共享锁(S锁),排他锁(X锁)表锁分类:意向共享锁(IS),意向排它锁(IX),自增锁(AU...原创 2019-02-15 17:10:06 · 567 阅读 · 0 评论 -
什么是RPC
转载自:https://www.jianshu.com/p/2accc2840a1b目录如何科学的解释RPC如何实现一个RPCRPC vs RestfulRPC vs RMIRPC没那么简单如何科学的解释RPC说起RPC,就不能不提到分布式,这个促使RPC诞生的领域。假设你有一个计算器接口,Calculator,以及它的实现类CalculatorImpl,那么在...转载 2019-02-22 16:43:13 · 246 阅读 · 0 评论 -
Dubbo和Spring Cloud微服务架构对比
转载自:https://blog.youkuaiyun.com/qq_41587754/article/details/80133775目录微服务简介微服务主要的优势1、降低复杂度2、可独立部署3、容错4、扩展一、核心部件1、总体架构▲Dubbo 总体架构▲Spring Cloud总体架构2、微服务架构核心要素二、通讯协议(一)、支持协议(二)、性能...转载 2019-02-27 20:17:29 · 169 阅读 · 0 评论 -
Spring Cloud Eureka 实现
之前项目中用到了spring cloud的一些服务,这里准备将spring cloud最常用的一些服务框架进行总结和实现。框架大致的介绍在之前的文章里面已经有提及:什么是微服务这里就从springcloud最开始搭建说起,也就是服务发现和注册,原生提供的就是Eureka服务端和客户端,之后由于zookeeper的流行,也提供你spring cloud zookeeper的实现方式,本文主要...原创 2019-03-01 19:11:51 · 1761 阅读 · 0 评论 -
SpringCloud 熔断器 Hystrix 实现
背景:在实际的微服务系统中,是有众多的服务的,并且经常一个服务需要依赖另一个服务,例如大的电商系统中,切分的订单服务和支付的服务就会有互相依赖的情况,而如果其中一个服务挂掉了,另一个服务一直请求,是肯定拿不到返回的,这样长时间的请求就会堆积,造成服务的崩溃,这样造成整个系统的瘫痪,这样的架构相较于传统架构更加不稳定。而为了解决和应对这个问题就出现了熔断器Hystrix。目录(一)简介(...原创 2019-03-02 17:09:34 · 507 阅读 · 0 评论 -
springCloud 多节点eureka server搭建高可用系统
之前的实例都是单节点的eureka server系统,在实际的生产环境中,分布式系统采用springCloud,一般会采用多节点搭建高可用的系统架构,这样的话就不会因为单节点eureka server挂掉产生问题。目录一、架构图二、实现1、配置eureka server2、遇到的问题3、配置eureka client一、架构图这边暂时只以ribbon,eureka ...原创 2019-03-03 12:18:23 · 1695 阅读 · 0 评论 -
SpringCloud——Feign实例及原理
转载自:https://blog.youkuaiyun.com/u010066934/article/details/80967709一、实例1、配置feign添加依赖在maven的pom中添加feign <dependency> <groupId>org.springframework.cloud</groupId> ...转载 2019-03-06 11:52:34 · 734 阅读 · 0 评论 -
SpringCloud 网关Zuul 实现之路由功能
一、背景通过之前的实现springCloud 各组件,发现有一个特点,就是外部访问的时候,直接就是通过各服务具体端口进行访问的,这在实际生产上是不可能的,实际生产环境中nignx就可以做一层地址的映射,那springCloud有没有这个功能呢,当然有,在springCloud中提供了Zuul组件,其中一个功能就是进行服务的路由的功能。以下是一般项目中服务端网络拓扑图:如图所示:客户...原创 2019-03-03 19:58:01 · 758 阅读 · 0 评论 -
Redis与MySQL的组合方案
转载自:https://blog.youkuaiyun.com/weixin_41545330/article/details/79651094方案由从易到难的顺序,但无论哪种方法,都需要保证的是Reids和MySQL的数据一致性。方案一:程序同时写Redis和MySQL读Redis方案二:程序写MySQL, 使用Gearman调用MySQL的UDF,完成对Redis的写读Redi...转载 2019-03-07 16:32:09 · 549 阅读 · 0 评论 -
如何合理地估算线程池大小?
转载自:http://ifeve.com/how-to-calculate-threadpool-size/如何合理地估算线程池大小?这个问题虽然看起来很小,却并不那么容易回答。大家如果有更好的方法欢迎赐教,先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每个Transaction由一个线...转载 2018-12-25 10:11:47 · 265 阅读 · 0 评论 -
手写mini版Spring IOC容器(一)
通常用Spring,我们都是从DispatchServlet开始的。这个简易的IOC容器主要目的就是模拟IOC将生成的bean注入到IOC容器中。代码项目的github地址:https://github.com/harrypitter/CreateSpring.git简单类图: 我这边程序中用了jetty runner插件来辅助。这边需要配置基础的注解:Autowi...原创 2018-12-11 18:02:47 · 507 阅读 · 0 评论 -
设计模式之模板模式(java实现)
模板模式(Template):行为型模式的一种,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变 一个算法的结构即可重定义该算法的某些特定步骤。简单的理解就是,一个架构或者业务的主体逻辑和流程是确定的,那么我们可以将它的这些逻辑流程抽象出来,然后真正具体实现的时候在它的子类之中进行实现。这是第一种思想,实现相对来说并不困难,引申的另一...原创 2018-12-09 12:04:28 · 429 阅读 · 0 评论 -
Java中的公平锁和非公平锁实现详解
转载自:https://blog.youkuaiyun.com/qyp199312/article/details/70598480#reentrantlock锁的实现分析 前言ReentrantLock的可重入性分析synchronized的可重入性ReentrantLock的可重入性ReentrantLock锁的实现分析公平锁和非公平锁公平锁FairSync非公平锁NonfairSy...转载 2018-11-23 11:36:43 · 350 阅读 · 0 评论 -
基于http协议的加密传输方案
转载自:https://www.cnblogs.com/mq0036/p/8274975.html最近公司需要通过公网与其它平台完成接口对接,但是基于开发时间和其它因素的考虑,本次对接无法采用https协议实现。既然不能用https协议,那就退而求其次采用http协议吧!那么问题来了!在对接的过程中我们需要对如下问题进行相关的考虑:1、敏感信息的不可见性 使用http协议传输数据...转载 2018-11-26 12:05:12 · 3173 阅读 · 0 评论 -
设计模式之原型模式(java实现)
原型模式(Prototype Pattern):就是从一个对象再创建另一个可定制对象的,而且不需要知道任何创建的细节。所谓原型模式,就是 Java 中的克隆技术,以某个对象为原型。复制出新的对象。显然新的对象具备原 型对象的特点,效率高(避免了重新执行构造过程步骤)。所以当直接创建对象代价比较大的时候,推荐使用这种设计模式,例如对象在访问数据库操作之后被创建,那么可以缓存该对象,在下一个请求是...原创 2018-12-04 17:50:55 · 168 阅读 · 0 评论 -
设计模式之策略模式(java实现)
策略模式(Strategy):在设计模式中属于一种行为模式,一般来说一个类的行为在使用算法可以更改,或者使用的service服务方法有多种选择的时候可以是用策略模式。中在实例化对象的时候用到 Strategy 模式,在 SimpleInstantiationStrategy 有使用。使用场景一个是当有固定算法封装时候,在根据用户需求处理数据的时候需要对算法进行选择的时候可...原创 2018-12-05 08:52:51 · 731 阅读 · 0 评论 -
设计模式之委派模式(java实现)
委派模式(delegate):并不属于23种设计模式,但是面向对象常用的一种设计模式,而且在SpringMVC源码中有大量使用。这种模式原理就是类 B和类 A 是两个互相没有任何关系的类,B 具有和 A 一模一样的方法和属性;并且调用 B 中的方法,属性就是调用 A 中同名的方法和属性。B 好像就是一个受 A 授权委托的中介。第三方的代码不需要知道 A 的 存在,也不需要和 A 发生直接的联系,通...原创 2018-12-05 11:55:25 · 1286 阅读 · 2 评论 -
设计模式之适配器模式(java实现)
适配器模式(Adapter):结构型模式之一,主要作用是兼容和转换,当项目扩展中需要兼容原来的老的代码时候,就可以考虑适配器模式了。适配器模式在Spring源码中也有大量使用,其中AOP的实现里面对 BeforeAdvice、AfterAdvice、ThrowsAdvice 三种通知类型的支持实际上是借 助适配器模式来实现的,这样的好处是使得框架允许用户向框架中加入自己想要支持的任何一种通知类...原创 2018-12-05 13:23:18 · 819 阅读 · 1 评论 -
设计模式之装饰器模式(java实现)
装饰器模式(Decorator):结构型设计模式,为了实现类在不修改原始类的基础上进行动态的覆盖或者增加方法,该实现保持了跟原有类的层级关系。这种设计模式允许向一个现有的对象添加新的功能,同时又不改变其结构。算是一种非常特殊的适配器模式。在实际业务中,有时候我们会创建了多层子类,但如果当子类层数超过三层,一般来说不太建议,这个时候可以考虑使用装饰器模式。Spring中的应用场景:在我们的项...原创 2018-12-05 17:42:18 · 1339 阅读 · 0 评论 -
设计模式之观察者模式(java实现)
观察者模式(Observer):一种行为型的设计模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在Spring中,观察者模式常用的地方是Listener的实现,如ApplicationListener。它一般由两个角色组成:发布者和订阅者(观察者)。观察者通常有一个回调,当然也可以没有。在实际的工作中,监听器,日志收集,短信...原创 2018-12-06 01:37:51 · 274 阅读 · 0 评论 -
SpringMVC源码分析1:SpringMVC概述
转载自:https://blog.youkuaiyun.com/a724888/article/details/76014532Web MVC简介1.1、Web开发中的请求-响应模型:在Web世界里,具体步骤如下:1、 Web浏览器(如IE)发起请求,如访问http://sishuok.com2、 Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下)...转载 2018-12-13 11:02:55 · 248 阅读 · 0 评论 -
设计模式之代理模式(java实现)
代理模式(Proxy):结构型的设计模式,目的是为其他对象提供一种代理以控制对这个对象的访问。即,它的思想是控制类或者接口对外的功能。代理模式分为静态代理模式和动态代理模式两种。在Spring中代理模式常见的是在AOP模块中,比如 JdkDynamicAopProxy 和 Cglib2AopProxy。先说说静态代理。举一个生活化的例子,现在有一个接口Person,儿子类(So...原创 2018-12-09 11:08:46 · 277 阅读 · 0 评论 -
深入理解JVM类加载机制
深入理解JVM类加载机制转载自:https://blog.youkuaiyun.com/a724888/article/details/78396462简述:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。下面我们具体来看类加载的过程:类的生命周期 类从被加载到内存中开始,到卸载出...转载 2018-12-20 09:40:35 · 379 阅读 · 0 评论 -
浅谈架构之路:前后端分离模式
转载自:https://www.cnblogs.com/shanrengo/p/6397734.html目录前言:分离模式为什么要分离?前后端分离的误区?如何前后端分离?编后语前言:分离模式 对前后端分离研究了一段时间,恰逢公司有一个大项目决定尝试使用前后端分离模式进行,便参与其中。该项目从2016年初立项至今,平平稳稳得度过,但也涌现出越来越多的问题,绝对不是说...转载 2019-03-17 20:57:25 · 606 阅读 · 0 评论