ForkJoinPool 探索

介绍

“分而治之“是理清思路和解决问题的一个重要的方法。大到系统架构对功能模块的拆分,小到归并排序的实现,无一不在散发着分而治之的思想。在实现分而治之的算法的时候,我们通常使用递归的方法。递归相当于把大的任务拆成多个小的任务,然后大任务等待多个小的子任务执行完成后,合并子任务的结果。一般来说,父任务依赖与子任务的执行结果,子任务与子任务之间没有依赖关系。因此子任务之间可以并发执行来提升性能。于是ForkJoinPool提供了一个并发处理“分而治之”的框架,让我们能以类似于递归的编程方式获得并发执行的能力。

阅读全文

go并发编程之美(一)

一、前言

在Java中多线程之间是通过共享内存进行通信的,在go中多线程之间通信是基于消息的,go中的通道是go中多线程通信的基石。

在java中创建的线程是与OS线程一一对应的,而在go中多个协程(goroutine)对应一个逻辑处理器,每个逻辑处理器与OS线程一一对应。

每个线程要运行必须要在就绪状态情况下获取cpu,而操作系统是基于时间片轮转算法来调度线程占用cpu来执行任务的,每个OS线程被分配一个时间片来占用cpu进行任务的执行。

阅读全文

基于Java的轻量级异步编程框架

DActor

Introduction

DActor框架可同时支持同步和异步代码,简化在线异步代码的开发,用同步代码的思维来开发异步代码,兼顾异步代码的高并发、无阻塞和同步代码的易读性,可维护性。 基于协程思想设计 最大程度的降低阻塞,提高单个线程的处理能力,并可有效的降低线程数。

阅读全文

《开源软件架构》中nginx章节

原文链接

nginx

Andrew Alexeev

nginx(发音为“engine x”)是由俄罗斯软件工程师Igor Sysoev编写的免费开源Web服务器。自2004年公开发布以来,nginx一直专注于高性能,高并发性和低内存消耗。Web服务器功能之上的其他功能,如负载均衡,缓存,访问和带宽控制,以及与各种应用程序高效集成的能力,有助于使nginx成为现代网站架构的不错选择。目前,nginx是互联网上第二大最受欢迎的开源Web服务器。

阅读全文

11张PPT介绍Paxos协议


阅读全文

《nginx官方文档》设置哈希表

原文链接

nginx使用散列表来快速处理静态数据集,如服务器名称、 map 指令值、MIME类型、请求头名称。在开始和每次重新配置期间,nginx会选择哈希表的最小可能大小,这样存储具有相同哈希值的键的桶大小就不会超过配置的参数(哈希桶大小)。哈希表的大小用桶表示。表的大小会持续调整直到超过 hash max size 参数。大多数哈希表都有相应的指令来更改这些参数,例如,服务器名称哈希使用 server_names_hash_max_size 和 server_names_hash_bucket_size 指令。

阅读全文

《Nginx官方文档》连接处理方法

nginx支持多种连接处理方法。特定方法的可用性取决于所使用的平台。在支持多种方法的平台上,nginx通常会自动选择最高效的方法。但是,如果有需要,可以使用 use 指令显式地选择连接处理方法。

阅读全文

《nginx官方文档》记录日志到syslog

原文链接

error_log 和access_log 指令支持将日志记录到syslog。以下参数将日志配置到syslog:server=address 参数定义syslog服务器的地址。地址可以指定为域名或IP地址,端口可选,也可以指定为带“unix:”前缀的 UNIX-domain socket 路径。如果未指定端口,则使用UDP 514 端口。如果一个域名解析为多个IP地址,则使用第一个解析的地址。 facility=string参数设置在 RFC 3164 中定义的syslog消息设施。设施可以是 “kern”, “user”, “mail”, “daemon”, “auth”, “intern”, “lpr”, “news”, “uucp”, “clock”, “authpriv”, “ftp”, “ntp”, “audit”, “alert”, “cron”, “local0”..“local7”中的一个。默认设置是“local7”。

阅读全文

《Nginx官方文档》调试日志

原文链接

要启用调试日志,需要将nginx 在构建时配置为支持调试:

阅读全文

《Nginx官方文档》配置文件中的单位

原文链接

大小可以指定为字节、千字节(后缀为 k 和 K)或兆字节(后缀为 m 和 M),例如“1024”、“8k”、“1m”。

偏移量也可以使用 g 或 G 为后缀的千兆字节为单位。

可以使用以下后缀来以毫秒、秒、分钟、小时、天等为单位指定时间间隔:

阅读全文

《Nginx官方文档》控制nginx

原文链接

nginx可以通过信号控制。主进程的进程ID默认被写入
/usr/local/nginx/logs/nginx.pid 文件中。此名称可以在配置时更改,也可以在
nginx.conf 中使用pid指令指定。主进程支持以下信号:

阅读全文

《Nginx官方文档》–入门指南

原文链接

本指南会对nginx进行基本的介绍并描述一些它可以完成的简单任务。如果你还没有安装nginx,请参阅nginx的安装。本指南不仅描述了怎么启动和停止nginx,怎么重新加载nginx的配置,还解释了nginx配置文件的结构以及如何设置nginx提供静态资源,还会教你如何将nginx配置为一个代理服务器,以及如何将它和FastCGI应用连接。

阅读全文

译《The Part-Time Parliament》——终于读懂了Paxos协议!

原文发布在MessageQueue公众号,欢迎关注!

最近的考古发现表明,在Paxos小岛上,尽管兼职议会成员都有逍遥癖,但议会模式仍然起作用。他们依旧保持了一致的会议记录,尽管他们频繁的进出会议室并且他们的信使还很健忘。Paxon议会协议提供了一种新方法去实现设计分布式系统的状态机。

阅读全文

《knative官方文档》翻译邀请

knative 是谷歌开源的 serverless 架构方案,旨在提供一套简单易用的 serverless 解决方案。knative框架非常新,2018年7月才对外发布第一个版本,最近也才更新几个版本。有兴趣了解的同学可以一起参与翻译。

阅读全文

《Nginx官方文档》如何安装nginx

原文链接

nginx可以在不同的操作系统下安装

Linux系统安装nginx

对于Linux操作系统,可以使用 nginx.org 的nginx安装包

阅读全文

return top