设计模式之命令模式 发表于 2018-11-21 | 更新于 2019-07-22 | 分类于 设计模式 阅读时长 简介命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 动机在软件构建过程中,行为请求者与行为实现者通常呈现一种“紧耦合”。但在某些场合 ... 阅读全文 »
设计模式之模板方法模式 发表于 2018-11-19 | 更新于 2019-07-22 | 分类于 设计模式 阅读时长 简介在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 动机在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比如需 ... 阅读全文 »
设计模式之代理模式 发表于 2018-11-17 | 更新于 2019-07-22 | 分类于 设计模式 阅读时长 简介“代理”可以理解为“代替”,代替“主人”做一些事情,为什么需要“代理”,是因为某些原因(比如:安全方面的原因),不想让“主人”直接面对这些繁琐、复杂的问题,但是这些事情是经“主人”同意或者授意的,如同“主人”亲自完成的一样。 动机在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或 ... 阅读全文 »
设计模式之工厂享元模式 发表于 2018-11-15 | 更新于 2019-07-22 | 分类于 设计模式 阅读时长 简介构成事物的最小单元我们称之为“元”,这些单元如果是大量、且重复出现,可以缓存重复出现的单元,达到节省内存的目的,换句说法就是享元是为了节省空间,对于计算机而言就是内存。面向对象很好地解决了系统抽象性的问题(系统抽象性指把系统里面的事物写成类,类可以实例化成为对象,用对象和对象之间的关系来设计系统 ... 阅读全文 »
微服务框架Surging之缓存中间件配置 发表于 2018-11-10 | 更新于 2019-07-22 | 分类于 微服务 阅读时长 通过指定CachingSettings.Class来选择配置的缓存中间件的上下文参数,当前Surging支持两种类型的缓存中间件: Redis MemoryCache 缓存中间件的配置项如下所述: 配置项 说明 备注 CachingSettings.Id 缓存中间件的唯一标识 ... 阅读全文 »
微服务框架Surging之消息中间件配置 发表于 2018-11-10 | 更新于 2019-07-22 | 分类于 微服务 阅读时长 Surging框架支持RabbitMq和Kafka中间件。 RabbitMq中间件配置 配置项 说明 备注 EventBusConnection RabbitMq服务地址 EventBusUserName 用户名 EventBusPassword 密码 VirtualH ... 阅读全文 »
微服务框架Surging之服务注册中心配置 发表于 2018-11-10 | 更新于 2019-07-22 | 分类于 微服务 阅读时长 Surging 支持Consul和Zookeeper作为服务注册中心。 Consul配置 配置项 说明 备注 ConnectionString Consul服务注册中心地址 SessionTimeout 会话超时时间 RoutePath 服务组件地址 服务引擎会通过指定该地址 ... 阅读全文 »
微服务框架Surging之组件配置 发表于 2018-11-08 | 更新于 2019-07-22 | 分类于 微服务 阅读时长 微服务的配置项可以通过指定的环境变量改写。微服务的配置采用Json文件来编写,配置格式如下所示:1配置项:"${环境变量名称}|默认值" Surging节点配置该节点主要配置微服务主机运行时的相关参数,包括主机IP、端口号、更新路由的心跳间隔、运行的最大并发量 ... 阅读全文 »
微服务框架Surging通信之通知 发表于 2018-11-08 | 更新于 2019-07-22 | 分类于 微服务 阅读时长 Surging框架支持Netty与websocket进行通信。 应用场景WebSocket用于服务端向客户端向客户端推送消息。 用法构建ws服务主机请参考 定义服务与命令。Ws的服务与命令的定义与应用业务接口的定义一致,但是需要注意的是,命令的负载均衡算法必须选择哈希算法,命令的第一个参数必须为 ... 阅读全文 »
微服务框架Surging之事件总线(发布-订阅) 发表于 2018-11-06 | 更新于 2019-07-22 | 分类于 微服务 阅读时长 消息中间件Surging服务引擎扩展了基于eventbus的rabbitmq和kafka事件总线,组件可以选择绑定 Normal,Retry(Dead letter),Fail ,如下图所示: 使用场景流量削峰比较典型的案例是:商品秒杀和抢购, 购买/秒杀是如今很常见的一个应用场景,在高并发的流量 ... 阅读全文 »