付威 付威的网络博客

将博客搬至CSDN

将博客搬至CSDN

设计模式---05.访问者模式

访问者模式 访问者模式是一种对象和对象的访问者分开的一种设计模式,在一个对象稳定的情况下,使用访问者模式可以更好的扩展对数据的访问。 相当于是我们在对象里面安插了一个“眼”,这个眼能够被外面实现,然后能拿到当前对象的各个属性。 举个例子 组装一台电脑,对于组装的对于组装者来说,只关心一个电脑零件构成(CPU,内存,鼠标键盘)。而对于电脑的消费者,关心的是电脑各个零件的价格以及总价。 ...

一个秒杀系统的设计

一直想写一个秒杀系统的设计,网上有烂大街的教程,虽然有的写得很不错,但是还是自己设计的来的清楚,基本思路就是拦截+负载+缓存+异步,流程如下(文字改天补上):

window下解决端口占用问题

window下解决端口进程的命令: netstat -ano | findStr 8080 找到对应的线程pid,比如10025 使用taskKill /F /pid 10025杀死线程

设计模式--04.装饰者模式

在23种设计模式中,装饰者模式在游戏开发的过程中,使用的很是频繁。因为这个设计模式,把所有的业务的逻辑封装的对应的实体类中,从而为主流程减负了。首先看下一个应用场景 装饰者模式的应用 我们都知道有一款经典游戏90坦克,这个游戏中,玩家坦克来操作坦克打击AI敌人,在没打死一个红色坦克就会掉下来一个装备,这个装备可以提升移动速度,增加攻击力。 我们首先定义玩家坦克是player对象,再定义...

消息中间件--04. Kafka常用的命令

启动zookeeper $ bin/zkServer.sh start conf/zoo.cfg & $ bin/zkCli.sh 启动Kafka 我们启动两个实例: $ bin/kafka-server-start.sh -daemon config/server.properties $ bin/kafka-server-start.sh -daemon config...

杂文--01. 未选择的路

未选择的路 (罗伯特·弗罗斯特) 黄色的树林里分出两条路 可惜我不能同时去涉足 我在那路口久久伫立 我向着一条路极目望去 直到它消失在丛林深处 但我却选择了另外一条路 它荒草萋萋,十分幽寂 显得更诱人,更美丽 虽然在这条小路上 很少留下旅人的足迹 那天清晨落叶满地 两条路都未经脚印污染 呵,留下一条路等改日再见 但我知道路径延绵无尽头 恐怕我难以再回返 ...

消息中间件--03. Kafka文件存储机制

kafka的文件系统 我们知道Kafka是一个Topic下有多个partition,具体结构如下: 下面我们就探究下Kafka的partition的组成到底是什么。 partition的目录 假定我们在指定的一个集群中有两个Broker,有2个topic(testTopic,testTopic1),每个topic的都有2个partition,在不同的partition中互为对方的...

消息中间件--02. Kafka架构

几个概念 broker:集群中的每一台服务器,称为Broker topic或者subject:队列名 partition:一个队列中的消息可以存储到多台broker上面,一个broker中的分区,称为partition kafka的架构 消息队列的流程从生产者生产消息,通过TCP协议的网络请求发送到Kafka集群,然后Consumers来进行消费,具体如下图: 其中生产者和消...

消息中间件--01. Kafka的几个疑问

Kafka是基于partition的模型,在消费的时候,消费者会和kafka建立一个绑定的关系。假设有一个topic有3个partition:P1,P2,P3,同时有一个消费group对应有3个消费者:C1,C2,C3,则消费会建立一个P1-C1,P2-C2,P3-C3的关系。 如果消费者数量多于partirion的话,就会有消费者空闲。 而如果partition个数比con...

js数字时钟--作息助手

作息助手 早就有想写一个时钟的想法,今天用js实现了一个,功能点如下(点击链接): 自动同步客户端时间,1s一次 工作的时常为90min,自动靠拢整点半点 休息时间为30min 可以发送桌面通知和声音,前提是浏览器支持

Guava学习笔记--02. EventBus使用

Guava EventBus EventBus 是Guava的一个发布订阅的模型,先看一个简单的实现: 定义一个Event的消息传递对象 public class TestEvent1 { private final int message; /** * 构造方法 * @param message */ ...

设计模式--03.观察者模式

观察者模式 观察者模式是一个消息的派发的模式,是把被观察者的状态能够及时的通知给观察者。 比如一个超市的打折了,需要把消息通知给每一个超市的顾客,这样就可以把超市作为一个被观察者,而顾客是观察者。 实现逻辑 观察者模式实现的类图如下: 实现步骤: 定义一个Observer接口,约束观察者(顾客)需要实现的方法: public interf...

设计模式--02.命令模式

命令模式 命令模式是把对象的操作方法分成一个命令,分别去执行。在分布式环境中,熔断和降级组件使用的设计模式就是命令模式。 为了了解什么是设计模式,可以类比下设计一个万能遥控器的设置,遥控器只负责一个方法的调用,真正的方法实现都在对应的电器上面。 使用的时候,只需要对对应的命令和实体进行注册下就可以了。具体的设计类图如下: 具体实现代码分下面几个步骤: 定义实体方...

Java如何实现零拷贝

什么是零拷贝 在操作系统中,从内核的形态区分,可以分为内核态(Kernel Space)和用户态(User Space)。 在传统的IO中,如果把数据通过网络发送到指定端的时候,数据需要经历下面的几个过程: 当调用系统函数的时候,CPU执行一系列准备工作,然后把请求发送给DMA处理(DMA可以理解为专门处理IO的组件),DMA将硬盘数据通过总线传输到内存中。 ...

Java中实现顺序IO

顺序IO和随机IO 对于磁盘的读写分为两种模式,顺序IO和随机IO。 随机IO存在一个寻址的过程,所以效率比较低。而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率很高。 网上盗了一个图(侵权删) Java中的随机读写 在Java中读写文件的方式有很多种,先总结以下3种方法: FileWriter和FileReader ...

作者:付威

真正的热爱是不图回报

推广信息

付威星球 知识星球
付威公众号 公众号

信息

推荐博客

如需添加到列表,请邮件到laofu_online@163.com