CloudNative 架构

CloudNative|云原生应用架构|云原生架构|容器化架构|微服务架构|平台架构|基础架构


  • 首页

  • 标签

  • 分类

  • 归档

  • k8s离线安装包

  • 搜索

Zephir安装和初体验

发表于 2016-06-30 | 分类于 zephir | | 热度: ℃
字数统计: 1,496 字 | 阅读时长 ≈ 6 分钟

Zephir安装

环境依赖

Zephir主要依赖于下面环境

  • gcc >= 4.x/clang >= 3.x
  • re2c 0.13或更高版本
  • gnu 3.81或更高版本
  • autoconf 2.31或更高版本
  • automake 1.14或更高版本
  • libpcre3
  • php开发工具-phpize

如果你使用Ubuntu,你可以安装所需要的包

1
2
$ sudo apt-get update
$ sudo apt-get install git gcc make re2c php5 php5-json php5-dev libpcre3-dev

由于Zephir是用PHP编写的,所以你需要安装php

1
2
3
4
5
$ php -v
PHP 5.6.5 (cli) (built: Jan 24 2015 20:04:31)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

同时也必须确保安装了PHP开发库

1
2
3
4
5
$ phpize -v
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226

阅读全文 »

Zephir介绍

发表于 2016-06-30 | 分类于 zephir | | 热度: ℃
字数统计: 1,871 字 | 阅读时长 ≈ 7 分钟

zephir介绍

Zephir是一种可以让PHP开发者尝试编写和编译可以被PHP执行代码的一种语言。它是动态/静态类型,它的一些特性对于PHP 开发者来说是非常的相似的。

Zephir的名字是取自Zend Engine/PHP/Intermediate的缩写。建议发音为zephyr相同。事实上Zephir的创造者发音为zaefire_.

简单易于开发

相信大家和我有一样的经历,看到了yaf和phalcon在想为什么C语言的拓展框架可以这么的快,我自己能不能写一个出来呢?然后屁颠屁颠的跑去找资料找大神了解,大神说你去看一下 “PHP扩展开发及内核应用”,结果大家都知道醉了。

主要原因是需要对C相对的熟悉并且对PHP内核API也要很熟悉,我觉得这已经不是门槛的问题了是太平洋的距离,就草草结束了研究。

当遇到zephir首先了解的就是复杂程度,结果花了10分钟就跟着流程做了一个小DEMO,就这点看来就开发效率这点看来无可厚非的的高效快速,大家感受一下。

阅读全文 »

Cache 应用中的服务过载案例研究

发表于 2016-06-29 | 分类于 架构 | | 热度: ℃
字数统计: 6,441 字 | 阅读时长 ≈ 22 分钟

简单地说,过载是外部请求对系统的访问量突然激增,造成请求堆积,服务不可用,最终导致系统崩溃。本文主要分析引入Cache可能造成的服务过载,并讨论相关的预防、恢复策略。

Cache在现代系统中使用广泛,由此引入的服务过载隐患无处不在,但却非常隐蔽,容易被忽视。本文希望能为开发者在设计和编写相关类型应用,以及服务过载发生处理时能够有章可循。

一个服务过载案例

本文讨论的案例是指存在正常调用关系的两个系统(假设调用方为A系统,服务方为B系统),A系统对B系统的访问突然超出B系统的承受能力,造成B系统崩溃。造成服务过载的原因很多,这里分析的是严重依赖Cache的系统服务过载。首先来看一种包含Cache的体系结构(如下图所示)。
Cache应用体系结构

A系统依赖B系统的读服务,A系统是60台机器组成的集群,B系统是6台机器组成的集群,之所以6台机器能够扛住60台机器的访问,是因为A系统并不是每次都访问B,而是首先请求Cache,只有Cache的相应数据失效时才会请求B。

阅读全文 »

通过iptables实现端口转发与内网共享上网

发表于 2016-06-21 | 分类于 Linux | | 热度: ℃
字数统计: 6,788 字 | 阅读时长 ≈ 26 分钟

iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴经验,写来供大家参考,同时也备日后自己翻阅。

首先要说明的是,iptables操作的是2.4以上内核的netfilter。所以需要linux的内核在2.4以上。其功能与安全性远远比其前辈ipfwadm,ipchains强大,iptables大致是工作在OSI七层的二、三、四层,其前辈ipchains不能单独实现对tcp/udp port以及对mac地址的的定义与操作,所以我想ipchains应该是仅仅工作在三层上的。

netfilter工作流程

我们先简单介绍一下netfilter的大致工作流程,也就是一个数据包(或者叫分组、packet,我个人习惯叫包)在到达linux的网络接口的时候 (网卡)如何处理这个包,然后再介绍一下如何用iptables改变或者说控制对这个数据包进行操作。

  • netfilter内部分为三个表,分别是 filter,nat,mangle,每个表又有不同的操作链(Chains)。
  • 在filter(过滤)表中,也就是他的 防火墙功能 的这个表,定义了三个 Chain。分别是INPUT,FORWARD,OUTPUT。也就是对包的入、转发、出进行定义的三个过滤链。对于这个filter表的操作和控制也是我们实现防火墙功能的一个重要手段
  • 在nat(Network Address Translation、网络地址翻译)表中,也就是我们用以实现地址转换和端口转发功能的这个表,定义了PREROUTING, POSTROUTING,OUTPUT三个链,下面我们会对这三个链作详细的说明
  • 而netfilter的mangle表则是一个自定义表,里面包括上面 的filter以及nat表中的各种chains,它可以让我们进行一些自定义的操作,同时这个mangle表中的chains在netfilter对包 的处理流程中处在一个比较优先的位置。
    阅读全文 »
1…2122
icyboy

icyboy

109 日志
98 分类
182 标签
RSS
GitHub 微博 知乎
友情链接
  • 张家港水蜜桃
  • 运维开发
  • DevOps
© 2016 — 2021 icyboy | Site words total count: 330.8k
本站访客数:
博客全站共330.8k字