![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
兰亭落雪
目的不能抵达怎么付出都是偏差。
展开
-
分布式模式之Broker模式
分布式模式之Broker模式问题来源:创建一个游戏系统,其将运行在互联网的环境中。客户端通过WWW服务或特定的客户端软件连接到游戏服务器,随着流量的增加,系统不断的膨胀,最终后台数据、业务逻辑被分布式的部署。然而相比中心化的系统,复杂度被无可避免的增大了,该如何降低各个组件之间的耦合度。挑战:需要保证可伸缩性、可维护性、可更新性,需要将服务划分为各个相对独立的组件,组件被分布式的部署,它们之间通过进程间通信方式实现交互。服务的增加、删除、改变都应该被支持。理想情况,以开发者的角度看,集中化的.原创 2020-11-23 09:13:34 · 1128 阅读 · 0 评论 -
Dubbo Schema配置
Dubbo Schema配置官方文档:http://dubbo.apache.org/zh-cn/docs/user/references/xml/introduction.htmldubbo:servic表格来自http://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-service.html属性 对应URL参数 类型 是否必填 缺省值 作用 描述 兼容性 interface原创 2020-11-22 17:52:37 · 340 阅读 · 0 评论 -
Spring IOC
广义的 IOCIoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”。两种实现: 依赖查找(DL)和依赖注入(DI)。IOC 和 DI 、DL 的关系(这个 DL,Avalon 和 EJB 就是使用的这种方式实现的 IoC):DL 已经被抛弃,因为他需要用户自己去是使用 API 进行查找资源和组装对象。即有侵入性。 DI 是 Spring 使用的方式,容器负责组件的装配。注意:Java 使用 DI 方式实现 IoC 的不止 Spring,包括原创 2020-11-11 09:05:52 · 199 阅读 · 0 评论 -
Hessian的使用以及理解
Hessian的使用以及理解Hessian版本:3.1.5将包括如下的内容:Hessian的基本使用 Hessian的原理 Hessian和Spring 的结合使用 扩展简单说来,Hessian是一个轻量级的RPC框架(RPC是什么?请参考这里)。它基于HTTP协议传输,使用Hessian二进制序列化,对于数据包比较大的情况比较友好。但是它的参数和返回值都需要实现Serializable接口。简单实现一个Hessian的例子:创建接口和实现类public interfa原创 2020-11-10 09:10:31 · 559 阅读 · 0 评论 -
SPI技术简单了解
1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。2、SPI优点支持全双工通信通信简单数据传输速率块3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。4、特点1):高速、同步、全双工、非差分、总线式2):主从机通信模式5、协议通信时序详解1):SPI的通信原理很简单,原创 2020-11-10 08:40:57 · 732 阅读 · 0 评论 -
localcache
一、应用场景localcache有着极大的性能优势:1. 单机情况下适当使用localcache会使应用的性能得到很大的提升。2. 集群环境下对于敏感性要求不高的数据可以使用localcache,只配置简单的失效机制来保证数据的相对一致性。哪些数据可以存储到本地缓存?1.访问频繁的数据;2.静态基础数据(长时间内不变的数据);3.相对静态数据(短时间内不变的数据)。二、java开源缓存框架比较有名的本地缓存开源框架有:1.EHCacheEHCache是一个纯jav原创 2020-10-26 08:33:36 · 1220 阅读 · 0 评论 -
Spring - lookup-method方式实现依赖注入
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做。spring有多种依赖注入的形式.原创 2020-09-22 10:44:57 · 244 阅读 · 0 评论 -
Spring循环依赖及解决方式
1. 什么是循环依赖?循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。Spring中循环依赖场景有:(1)构造器的循环依赖(2)field属性的循环依赖其中, 构造器的循环依赖问题无法解决,只能拋出BeanCurrentlyInCreationException异常,在解决属性循环依赖时,spr..原创 2020-09-22 10:29:35 · 164 阅读 · 0 评论 -
Spring 事务 -- @Transactional
一、事务简单介绍 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。1.1 事务基本要素原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 一致性(Consistency): 事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了...原创 2020-08-12 07:41:53 · 466 阅读 · 0 评论 -
关于SOA
一、什么是SOASOA(Service-Oriented Architecture),即面向服务的架构。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。阿里巴巴的Dubbo是SOA的典型实现。(1)基本特征SOA的实施具有几个鲜明的基本特征:粗粒度的服务接口分级松散耦合可重用的服务服务接口设计管理标准化的服务接口支原创 2020-06-26 14:24:18 · 440 阅读 · 0 评论 -
秒杀系统的设计
秒杀场景的特点秒杀场景是电商网站定期举办的活动,这个活动有明确的开始和结束时间,而且参与互动的商品是事先定义好了,参与秒杀商品的个数也是有限制的。同时会提供一个秒杀的入口,让用户通过这个入口进行抢购。总结一下秒杀场景的特点:定时开始,秒杀时大量用户会在同一时间,抢购同一商品,网站瞬时流量激增。 库存有限,秒杀下单数量远远大于库存数量,只有少部分用户能够秒杀成功。 操作可靠,秒杀业务...原创 2019-12-05 22:15:52 · 294 阅读 · 0 评论 -
Dubbo通信协议
一、协议的概念 协议是两个网络实体进行通信的基础,数据在网络上从一个实体传输到另一个实体,以字节流的形式传递到对端。在这个字节流的世界里,如果没有协议,就无法将这个一维的字节流重塑成为二维或者多维的数据结构以及领域对象。举例说明:协议是双方确定的交流语义,比如:我们设计一个字符串传输的协议,它允许客户端发送一个字符串,服务端接收到对应的字符串。这个协议很简单,首先发送一个4...原创 2019-11-07 09:18:47 · 483 阅读 · 0 评论 -
性能优化
背景在海量并发业务的场景下,比如电商抢购、微信红包这样的场景下,我们经常会遇到各种各样的性能问题,在应对这些问题的时候,应该有怎样的方法论去指导我们解决问题,基于这几年的开发经验,做一个简单的分享。性能优化包含两个方面的理解: 业务层面的性能优化 框架层面的性能优化 在比较大的互联网公司中,一般不会直接使用开源的框架做业务开发,这里就涉及到框架的性能问题,一般的...转载 2019-03-24 16:11:51 · 155 阅读 · 0 评论 -
设计模式(概念解释及原则)
1.什么是设计模式?设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。2.使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。3. 设计原则(一) 开闭原则应对扩展开放,而对修改关闭。(二) 里氏代换原则如果...原创 2019-03-17 20:27:58 · 2339 阅读 · 0 评论 -
创建型模式
(一).工厂方法:Factory Method1.1定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使一个类的实例化延迟到其子类。针对单一结构系统.1.2适用场景:作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式假如调用者自己组装产品需要增加依赖关系时,可以考虑使用工厂模式。当需要系统有比较好的扩展性时,可以考虑工厂模式1.3...原创 2019-03-17 19:51:12 · 182 阅读 · 1 评论 -
工厂模式
简单工厂模式在创建一个对象时不向客户暴露内部细节;简单工厂不是设计模式,更像是一种编程习惯。它把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个子类来实例化。假设有一个工厂,他能生产出A、B两种产品。当客户需要产品的时候,要告诉工厂是哪种产品,是A还是B。当新增加一种新产品的时候,那么就要去修改工厂的类。// Factory.cpp : 定义控制台应用程...原创 2019-03-17 19:01:35 · 85 阅读 · 0 评论 -
C++的单例模式与线程安全单例模式(懒汉/饿汉)
教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。 上代码: 1 2 3 4 5 6 7 8 ...原创 2019-03-05 15:27:44 · 143 阅读 · 0 评论