科技新闻

待解决的问题

此生再无相见时 提交于 2020-02-26 15:42:46
1、java object 对象锁 线程存放,IO流,多线程机制 2、java 内部类机制 3、消息总线技术,如Kafka,ActiveMQ等。 4、深入理解java虚拟机:内存模型,类加载机制,性能优化 5、ThreaLocal 6、Linux命令,shell编程 7、正则表达式 来源: CSDN 作者: luguanghui2007 链接: https://blog.csdn.net/luguanghui2007/article/details/104472375

Handler机制中的消息队列

拟墨画扇 提交于 2020-02-26 14:19:26
学习自 蘑菇街大佬 Handler机制可以看成是一个消息阻塞队列,当有消息时立即处理消息,没有消息时则阻塞.在Android系统中APP启动后很快进入死循环,不断读取MessageQueue中的消息,有消息则立即处理,没有消息则阻塞.Android的View绘制,事件响应(点击,触摸屏幕等)都是把消息发送到了主线程的消息队列,包括自己在主线程创建的handler最终也是把消息插入到了主线程消息队列中,并最终分发到到指定的handler处理消息. handler.send(msg) ->sendMessageDelayed(msg, 0) ->sendMessageAtTime(msg, SystemClock.uptimeMillis() + delayMillis) ->enqueueMessage(queue, msg, uptimeMillis) //这里就是进入到消息队列,进入的是主线程的Looper(MainLooper) ->queue.enqueueMessage(msg, uptimeMillis); 当出队的时候会根据msg中的一个成员变量target(这个target就是handler)来分发的对应的hand 大专栏 Handler机制中的消息队列 ler,这样handler就拿到了信息, for (;;) { // 不断从 MessageQueue 获取 消息

JavaWeb Response

眉间皱痕 提交于 2020-02-26 13:54:29
# 今日内容 1. HTTP协议:响应消息 2. Response对象 3. ServletContext对象 ## HTTP协议: 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组成:协议/版本 响应状态码 状态码描述 2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。 1. 状态码都是3位数字 2. 分类: 1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码 2. 2xx:成功。代表:200 3. 3xx:重定向。代表:302(重定向),304(访问缓存) 4. 4xx:客户端错误。 * 代表: * 404(请求路径没有对应的资源) * 405:请求方式没有对应的doXxx方法 5. 5xx:服务器端错误。代表:500(服务器内部出现异常) 2. 响应头: 1. 格式:头名称: 值 2. 常见的响应头: 1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式 2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据 * 值: * in-line:默认值,在当前页面内打开 * attachment;filename=xxx

三分钟弄懂物联网流行协议——MQTT

夙愿已清 提交于 2020-02-26 13:40:13
MQTT (Message Queue Telemetry Transport),翻译成中文就是, 遥测传输协议 ,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发,属于物联网(Internet of Thing)的一个标准传输协议。 为什么使用MQTT 协议? MQTT(英语全称,Message Queue Telemetry Transport),中文翻译过来就是遥测传输协议:其主要提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网(Internet of Thing)的一个传输协议。设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此: 特别适合于网络代价昂贵,带宽低、不可靠的环境。 能在处理器和内存资源有限的嵌入式设备中运行。 使用发布/订阅消息模式,提供一对多的消息发布,从而解除应用程序耦合。 使用 TCP/IP 提供网络连接。 提供Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。 对消息中间件,估计大家不得不关心的就是消息的可靠性,也就是消息的发布服务质量,可喜的是,MQTT支持三种消息发布服务质量(QoS): “至多一次”(QoS==0),消息发布完全依赖底层 TCP

Kafka入门集群部署

[亡魂溺海] 提交于 2020-02-26 13:37:22
一、Kafka 概述 Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于 大数据实时处理领域。 二、消息队列的两种模式 (1)点对点模式(一对一 ,消费者主动拉取数据,消息收到后消息清除) 消息生产者生产消息发送到Queue中,然后消息消费者从Queue中取出并且消费消息。 消息被消费以后,queue 中不再有存储,所以消息消费者不可能消费到已经被消费的消息。 Queue 支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。 (2)发布/订阅模式(一对多 ,消费者消费数据之后不会清除消息) 消息生产者(发布)将消息发布到 topic 中,同时有多个消息消费者(订阅)消费该消 息。和点对点方式不同,发布到 topic 的消息会被所有订阅者消费。 三、kafka下载和环境准备 kafaka下载地址: http://kafka.apache.org/downloads.html 选择自己需要对应的scala版本进行下载。 3.1 集群规划 准备三台虚拟机这三台虚拟机也完成了zookeeper的集群规划,没有完成的可以参考这一篇 Zookeeper集群部署 。 四、配置环境 4.1 解压安装包,并修改解压后的文件名称 tar - zxvf kafka_2 . 12 - 2.3 .0 . tgz mv kafka_2 . 12 -

Rabbitmq简介及部署群集

↘锁芯ラ 提交于 2020-02-26 13:32:00
博文大纲: 一、MQ简介 二、什么是RabbitMQ? 三、安装RabbitMQ 四、部署Rabbitmq集群 1)部署环境 2)安装rabbitmq服务 3)配置host文件,并将上述两个节点加入集群 4)rabbitmq01配置群集并将rabbitmq02、03加入01群集 5)访问web界面 6)web页面添加vhost 五、单台节点加入或退出群集 1)单节点加入集群 2)单节点退出集群 一、MQ简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。 二、什么是RabbitMQ? RabbitMQ是由Erlang语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为 面向消息的中间件)。支持Windows、Linux/Unix、MAC OS X操作系统和包括JAVA在内的多种编程语言。 AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议

HTTP协议

China☆狼群 提交于 2020-02-26 09:39:51
HTTP协议 一、定义 HTTP协议(超文本传输协议):一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展语义和自然描述消息格式, 与基于网络的超文本信息系统灵活的互动。 二、HTTP消息的格式 (一)、语义话的表达格式 请求格式: 请求方法:GET/POST/PATCH/PUT/DELETE 版本号 path路径 以上三个组成请求行(request-line) HOST:域名 响应格式: 响应行(response-line) HTTP请求 状态码 响应体 request-line和response-line共同组成start-line (二)、基于ABNF的严谨格式 ABNF:扩充巴科斯-瑙尔范式 操作符号: 空白字符:用来分割定义中的各个元素。例如:method SP request-target SP HTTP-version CRLF 选择'/':表示多个规则都是可以选择的规则。例如:start-line = request-line/response-line,start-line可以是两者中的任意一个。 值范围:%##-## 。例如:如果希望取值在0-7之间,可以有两种表达方式: 方式一:OCTAL = '0' / '1' / '2' / '3' / '4' / '5' / '6' / '7' ,通过或的关系来取值。 方式二:OCTAL = %x30-37

微信群如何设置只提醒包含某个关键字的消息

一个人想着一个人 提交于 2020-02-26 09:08:03
有的时候我们只关心微信群里的包含特定内容的消息,比如抢单群,只关心包含订单两个字的消息,那么如何实现这个功能呢? 今天介绍一个好用的软件.叫 微消息提醒. 第一步:我们需要设置一个群关键字提醒.很简单,填写群名称和关键字即可 做完这一步,来包含关键字的消息就可以特殊提醒了 第二步:屏蔽群里其他消息的提醒.如果我们想只提醒包含关键字的消息.那么我们可以添加一个群屏蔽.添加群名称,选择方式1,只提醒某人消息,然后在允许列表里填写一个群里不存在的昵称,这样群里的所有消息都不会收到提醒了.通过这两步,就可以做到只有包含关键的消息才提醒了. 来源: oschina 链接: https://my.oschina.net/u/154000/blog/3162588

美航天局关闭斯皮策太空望远镜:16年观测硕果累累

你离开我真会死。 提交于 2020-02-26 08:24:34
  新浪科技讯,北京时间 1 月 31 日消息,据国外媒体报道,美国国家航空和宇宙航行局(NASA)即将告别一台工作非常出色的太空望远镜。利用这台望远镜,科学家们得以窥视宇宙中一些充满尘埃的角落。   2003 年,红外天文卫星“斯皮策太空望远镜”(Spitzer Space Telescope)发射升空,开始了为期 2.5 年的主任务。然而,任务结束后它仍继续运行,总时长达到约 16 年,直到 1 月 28 日,它还进行了最后的科学数据收集。所有这一切将在 1 月 30 日结束,届时 NASA 将向斯皮策太空望远镜发送最后指令。从开始到结束,NASA 一共在这个项目上花费了大约 13.6 亿美元,但没人能说这台太空望远镜未达到发射时的科学目标。   NASA 喷气动力实验室的天体物理学家法里萨·莫拉莱斯(Farisa Morales)说:“斯皮策望远镜所观测到的数据非常精确。它揭示了真正的宇宙:古老、寒冷、充满尘埃。”   在 16 年的运行中,斯皮策太空望远镜的科学工作让天文学家跨越了时间和空间,而这要归功于它用红外线观察宇宙的独特方式。在 1 月 22 日举行的 NASA 新闻发布会上,前任务经理苏珊娜·多德(Suzanne Dodd)说:“(斯皮策望远镜)能感知到冷的物体,因此我们能透过尘埃进行观测,也就是说,我们正在揭开宇宙的面纱。我们可以观察到的天体物理学对象非常丰富

Java实现IP/TCP通信帮助类SocketSimple

感情迁移 提交于 2020-02-26 07:17:34
新春伊始,上班码代码,看了一下自己年前的总结,发现有一个Socket通信的帮助库 SocketSimple ,今天就介绍一下该库的作用。 作用讲解 SocketSimple库主要是对Socket服务端实现及Socket客户端实现的封装,服务端由ServerHelper管理,客户端由ClientHelper管理;通信均采用回调模式,主要有异常回调、连接回调、消息接收回调、消息发出回调等;内部多线程并发,消息接收在独立线程,支持长连接,支持多服务端、多客户端创建等。 集成方式 Jar包下载 SocketSimple.jar Maven中央仓库 http://search.maven.org/ 搜索 SocketSimple Note:使用时版本请以 Github 为准。 代码示例 /** * 服务端测试类 */ public class Test { private static Set<String> addresses = new HashSet<String>(); public static void main(String[] args) { //创建服务器 final ServerHelper helper = ServerHelper.getInstance(true); helper.createServer(9988, new ServerCallBack() { /