在 OpenResty 的体系中,可以通过共享内存的方式完成不同工作进程的数据共享,可以通过 Lua 模块方式完成单个进程内不同请求的数据共享。如何完成单个请求内不同阶段的数据共享呢?最典型的例子,估计就是在 log 阶段记录一些请求的特殊变量。
context
是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入。它用来简化在多个go routine传递上下文数据、(手动/超时)中止routine树等操作,比如,官方http包使用context传递请求的上下文数据,gRpc使用context来终止某个请求产生的routine树。由于它使用简单,现在基本成了编写go基础库的通用规范。笔者在使用context上有一些经验,遂分享下。
原文:Fundamentals of concurrent programming
译者:youngsterxyf
本文是一篇并发编程方面的入门文章,以Go语言编写示例代码,内容涵盖:
- 运行期并发线程(goroutines)
- 基本的同步技术(管道和锁)
- Go语言中基本的并发模式
- 死锁和数据竞争
- 并行计算
常用命令:
$ sudo update-rc.d nginx defaults #增加服务
$ sudo update-rc.d -f nginx remove #移除服务
在Debian中安装新服务时,默认是开机启动的。例如,如果你安装了Nginx,Nginx服务会在下次开机时自启动。如果你不想Nginx开机自启动,你就要自己移除 /etc/rcX.d/SYYnginx 或使用 update-rc.d。而使用update-rc.d的优势很明显,它会自己移除、增加对/etc/init.d/内的链接。
Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
程序运行了一段时间,出现下面的这样几次error之后,程序自动终止了
1 | [9232:2000:0222 /102513 .017:ERROR:ssl_client_socket_impl.cc(962)] handshake failed; returned -1, SSL error code 1, net_error -100 |
非阿里云主机用 nginx 代理转发 http 到 阿里云主机,刚开始访问正常,过几个小时后代理 nginx 报错:
An existing connection was forcibly closed by the remote host.
解决方案:
到阿里云后台 添加白名单,网址:
解决方法:
在php程序代码里面设置报警级别
1 2 | <?php error_reporting (E_ALL ^ E_DEPRECATED); |
Deprecated 的问题就这样解决掉了,不过还是建议大家尽快取消 mysql 的用户,全部都走向 mysqli 或者 mysqlnd 等等。mysql 确实是太不安全而且太老旧了。
本节介绍Provider端代码的搭建,工欲善其事必先利其器,Provider端的代码结构很重要,写代码的时候,我们需要知道我们自己要干嘛,好了,废话不多说,先写一个接口,接口是明确自己要干什么的利器,写个接口压压惊~