Design Patern与Architecture
moxiaomomo
虚怀若谷,大爱无疆
展开
-
学习设计模式---C++单例模式
首先展示一个最简单的单例模式例子,代码如下:class NetworkService{public: // 对外提供的唯一方法函数,用于获取唯一的对象指针 static NetworkService* GetInstance() { if(m_pInstance == NULL) { m_pInstance原创 2012-05-28 13:59:19 · 1874 阅读 · 1 评论 -
学习设计模式--观察者模式(C++)
1. 说说简单的函数回调首先说说一种简单的函数回调机制(一种通过获取对象的指针来进行函数的调用方法)下面是代码演示---这是观察者(被回调)部分:class Observer{public: // 抽象观察者的纯虚函数 virtual void UpdateMessage() = 0;};class ConcreteObserver : public Observer原创 2012-05-30 02:16:51 · 3717 阅读 · 3 评论 -
【Design Pattern】Builder模式的一种实现
应用场景如果需要根据多个不同的参数来创建某类的不同对象,很常见的方法是定义多个构造器以供不同场合下的调用。但有一种更好的构造方法,我们可以使用Builder模式来实现(前提是多个构造参数)。示例(汽车类及其Builder构造器)public class Car { private final int seet; private final String原创 2013-05-18 15:10:29 · 1598 阅读 · 0 评论 -
【Code Style】每个模块拥有一个单元测试
每个模块最好有一个单元测试用例,并且放在容易调用的位置。例如使用python,写了一个工具模块,那么可以这样添加:if __name__=="__main__": unitTest(123)unitTest方法中包含了调用了一些工具函数的过程并输出结果。很简单,但是越简单就是越要注意编程习惯。原创 2013-12-24 08:36:03 · 1141 阅读 · 0 评论 -
[微服务]关于架构设计的问题
微服务架构的核心思想是类似的,而不同的应用场景总有不同的具体实践架构。 微服务设计前,我想有几个问题应该需要思考一下:客户端如何访问这些服务每个服务的边界如何划分,如何通信划分成这么多的服务,如何实现部署划分成这么多的服务,如何有效监控和容灾以下是基于本地项目环境设计的一种初步架构,权当笔记: ...原创 2018-06-04 14:18:57 · 343 阅读 · 0 评论 -
微服务开发之熔断器
一般在微服架构中,有一个组件角色叫熔断器。顾名思义,熔断器起的作用就是在特定的场景下关掉当前的通路,从而起到保护整个系统的效果。在微服务架构中,一般我们的独立服务是比较多的,每个独立服务之间划分责任边界,并通过约定协议接口来进行通信。当我们的调用链路复杂依赖多时,很可能会发生雪崩效应。假设有这么一个场景,有A, B, C, D四个独立服务,A会依赖B,C,D;当D发生负载过高或网络异常等导...原创 2018-06-22 17:47:39 · 4442 阅读 · 0 评论 -
[分布式trace]在Ubuntu17.10上部署jaeger
关于JaegerJaeger是由Uber发布的一种分布式调用链跟踪系统,主要用于集成到微服务调用追踪,和Zipkin作用类似。通过调用链跟踪系统,可以快速了解各节点的响应状况,方便定位问题。Jaeger关键组件Jaeger本身是一种可单独部署运行的服务,主要有以下几个关键组件:数据存储Cassandra数据收集jaeger-collector客户端代理jaeger-age...原创 2018-06-18 13:30:17 · 1299 阅读 · 0 评论