java怎么写爬虫?
爬虫都是基于现有的框架来开发的,基于java语言实现的爬虫框架很多,这里列举一个:WebMagic,它的架构设计参照了Scrapy,应用了HttpClient、Jsoup等Java成熟的工具,包含四个组件(Downloader、PageProcessor、Scheduler、Pipeline),Spider是WebMagic内部流程的核心,上面的四个组件都相当于Spider的一个属性,通过设置这个属性可以实现不同的功能。
socket netty区别?
Socket就是为网络服务提供的一种机制。
通讯的两端都有Sokcet。网络通讯其实就是Sokcet间的通讯,数据在两个Sokcet间通过IO传输
Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性
doubble框架用的什么协议?
默认使用dubbo协议。 单一长连接和NIO异步通讯,适合大并发小数据量的服务调用,以及消费者远大于提供者。rmi协议、hessian协议、http协议、webservice
web前端三大主流框架之Python异步框架如何工作?
针对这个标题,我引用php中文网的Tomorin作者的一篇文章
这篇文章我们从 socket 编程的例子来看看 Python 异步框架是如何工作的,需要了解下简单的 socket 编程以及 Linux 提供的 I/O 复用机制。 Python 异步框架也是基于操作系统底层提供的 I/O 复用机制来实现的,比如 linux 下可以使用 select/poll/epoll 等。 我们先看个简单的 python socket server 例子,Python 代码使用 Python3,确保可以使用 selectors 模块。
一个实例
我们下边用一个 golang 的 tcp client 测试下它:
使用 go 运行它可以看到输出。
接下来我们使用 python3 提供的 selectros 来改造它,这个模块封装了操作系统底层提供的 I/O 复用机制,比如 linux 上使用了 epoll。通过 I/O 复用机制我们可以监听多个文件描述符的可读写事件并且注册回调函数,拥有更好的并发性能。 先看 python3 的 selectors 文档给的例子
我们来运行下这个 使用了 seelctors I/O 复用机制的 tcp echo server 看下输出结果。
到这里就差不多了,我们再继续运行 go 写的 tcp client 来测试它看结果。
在后边教程中我们将使用 python 的 coroutine 而不是回调函数来改造这个例子,这样一来我们就能使用 async/await 来运行它了

