摘要: 概述 在网络编程中,无论使用netty还是其它的socket通讯框架,都是通过TCP或UDP传输二进制流。发送方把要发送的对象转化成二进制流发送出去;接收方把接收到的二进制流转化为对象进行处理。 为了能让接收方和发送方能对同一个二进制流有相同的认识,双方必须提前约定好一个协议,即对象如何转化为二进制 阅读全文
posted @ 2020-11-02 17:16 程序员顺仔 阅读(1746) 评论(0) 推荐(0) 编辑
摘要: easy-im是面向开发者的一款轻量级、开箱即用的即时通讯系统,帮助开发者快速搭建消息推送等功能。 阅读全文
posted @ 2019-01-27 22:44 程序员顺仔 阅读(2269) 评论(0) 推荐(0) 编辑
摘要: 随机数真的不能随机使用。 阅读全文
posted @ 2018-10-02 13:54 程序员顺仔 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 基于ZooKeeper实现主从协作 主-从模式的模型中,主要包括三个角色: 主节点:主要负责监视新的节点和任务,分配任务给可用的从节点; 从节点:通过注册自己,确保主节点看到它们可以执行任务,收到主节点分配的任务后,执行并记录状态; 客户端:创建新的任务并等待系统响应。 1. Zookeeper节点 阅读全文
posted @ 2018-09-26 13:56 程序员顺仔 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 五分钟了解ZooKeeper的工作原理 阅读全文
posted @ 2018-09-21 20:15 程序员顺仔 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 配置中心使用ZooKeeper的持久节点的特性,将配置信息写入到持久节点。客户端启动时,从ZooKeeper读取配置信息,进而初始化内部资源,达到配置统一管理的目的。再结合ZooKeeper的Watch特性,配置信息变化实时推送到客户端,即时生效,无需重启客户端,达到配置热更新的效果。 阅读全文
posted @ 2018-09-21 20:08 程序员顺仔 阅读(2236) 评论(0) 推荐(0) 编辑
摘要: 一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个 阅读全文
posted @ 2018-09-08 15:26 程序员顺仔 阅读(5964) 评论(1) 推荐(2) 编辑
摘要: Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管 阅读全文
posted @ 2018-05-19 11:23 程序员顺仔 阅读(2375) 评论(0) 推荐(0) 编辑
摘要: 我们常用的synchronized关键字是一种最简单的线程同步控制方法,它决定了一个线程是否可以访问临界区资源。同时Object.wait() 和Object.notify()方法起到了线程等待和通知的作用。这些工具对于实现复杂的多线程协作起到了重要的作用。 阅读全文
posted @ 2018-05-02 20:42 程序员顺仔 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 在并发编程中,需要处理两个关键问题:线程之间如何通信,以及线程之间如何同步。通信是指线程之间如何交换信息,在命令式编程中,线程之间的通信机制有两种:内存共享和消息传递。 同步是指程序中用于控制不同线程间的操作发生相对顺序的机制。在共享内存并发模型中,同步是显性进行的。程序员需要显性设置某段代码在线程之间的互斥执行。在消息传递的并发模型中,由于消息的发送必须在消息的接受之前,因此同步是隐性进行的。 阅读全文
posted @ 2018-05-02 12:59 程序员顺仔 阅读(305) 评论(0) 推荐(0) 编辑