0%

外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

例子:通过ShapeMaker简化Shape的创建。

facade.jpg

阅读全文 »

桥接是用于把抽象化与实现化解耦,使得二者可以独立变化。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。

例子:通过定义桥接接口DrawApi,把Shape的draw功能独立出来。

bridge.jpg

阅读全文 »

建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。

例子:麦当劳套餐。一份麦当劳套餐,通常包含一个汉堡,一份冷饮,汉堡又可以分为蔬菜汉堡,鸡肉汉堡等;冷饮可以分为百事可乐,可口可乐等。汉堡使用纸盒包装,冷饮使用杯子包装。那么正个套餐就是一个复杂的对象,下面使用建造者模式构建。

![builder.jpg](http://localhost/static/userImages/20180621/104732_039466_builder.jpg “104732_039466_builder.jpg”建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。

例子:麦当劳套餐。一份麦当劳套餐,通常包含一个汉堡,一份冷饮,汉堡又可以分为蔬菜汉堡,鸡肉汉堡等;冷饮可以分为百事可乐,可口可乐等。汉堡使用纸盒包装,冷饮使用杯子包装。那么正个套餐就是一个复杂的对象,下面使用建造者模式构建。

builder.jpg

阅读全文 »

抽象工厂模式与工厂方法模式最大的区别在于,工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。

产品等级:如一个抽象类是空调,其子类有海尔空调,美的空调;如一个抽象类是洗衣机,其子类有海尔洗衣机,美的洗衣机。

产品族:产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。如海尔生产的冰箱和洗衣机。

例子如下:

abstractFactory.jpg

阅读全文 »

简单工厂模式:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

例子如下:

SimpleFactory.jpg

阅读全文 »

日常开发中,有些同事对日志输出没有好好设计,导致不重要的日志满天飞,掩盖了真实重要的日志,为了方便调试,经常需要对某个类进行单独配置日志级别。

1
2
3
4
5
6
7
8
9
10
logging:
level:
io:
seata:
root: debug #core包全部 debug
core:
rpc:
netty:
AbstractRpcRemoting: info #针对单独类的配置 info
AbstractRpcRemotingClient: info #针对单独类的配置 info

1、虚拟三台CentOS

1、管理员模式启动 VMware。
2、VMware => 编辑 => 虚拟网络编辑器 =>选择 Net 模式;关闭 dhcp;记录下网关地址。
3、虚拟出三台主机后,修改静态ip,网段和第2点的网段一样,网关对应第2点的网关地址。重启 service network restart。
4、修改宿主主机的 VMware Network Adapter VMnet8 的 ip 地址,设置和第2点同样的网段地址。(非常重要,否则会出现主机 ping 不通虚拟机的情况)
参考文章 https://www.linuxidc.com/Linux/2017-05/144328.htm

2、安装 zookeeper

1、参考文章
https://www.cnblogs.com/luotianshuai/p/5206662.html

2、替换可用yum源,非常重要,参考其他笔记

3、安装jdk

1
yum -y install java-1.8.0-openjdk*

4、zookeeper 安装简要命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mkdir /home/zookeeper
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
tar -xvf /home/zookeeper/apache-zookeeper-3.5.5-bin.tar.gz
cd /home/zookeeper
mkdir zkdata
mkdir zkdatalog
cp apache-zookeeper-3.5.5-bin/conf/zoo_sample.cfg apache-zookeeper-3.5.5-bin/conf/zoo.cfg
vi apache-zookeeper-3.5.5-bin/conf/zoo.cfg
//配置下面内容-----
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/zkdata
dataLogDir=/home/zookeeper/zkdatalog
clientPort=2181
server.1=192.168.75.86:2888:3888
server.2=192.168.75.87:2888:3888
server.3=192.168.75.88:2888:3888
//配置内容结束------

5、启动 zookeeper

1
2
/home/zookeeper/apache-zookeeper-3.5.5-bin/bin/zkServer.sh start //直接启动
/home/zookeeper/apache-zookeeper-3.5.5-bin/bin/zkServer.sh start-foreground //边启动边看日志

6、查看状态

1
/home/zookeeper/apache-zookeeper-3.5.5-bin/bin/zkServer.sh status

3、安装 kafka

1、kafka 安装简要命令

1
2
3
4
5
6
7
8
mkdir /home/kafka
wget ...
tar -xvf ...
vi server.properties
配置下面两项---
host.name=192.168.75.86
zookeeper.connect=192.168.75.86:2181,192.168.75.87:2181,192.168.75.88:2181
结束配置-----

2、启动

1
/home/kafka/kafka_2.12-2.2.0/bin/kafka-server-start.sh -daemon /home/kafka/kafka_2.12-2.2.0/config/server.properties

3、查看日志

1
tail -fn 200 /home/kafka/kafka_2.12-2.2.0/logs/server.log 

4、创建主题

1
./kafka-topics.sh --create --zookeeper 192.168.2.121:2181 --replication-factor 3 --partitions 10 --topic request-online