libevent

Reason and solution for error -“/usr/bin/ld: cannot find -levent ”?

一曲冷凌霜 提交于 2021-02-19 03:36:27
问题 While compiling my program which is using libevent library I am using gcc option -levent. But I am getting this error - /usr/bin/ld: cannot find -levent I do not have libevent on my system so I am statically linking to it while compiling using gcc -o Hello -static -I libevent-1.4.12-stable/ hello.c -levent How can i resolve this? Thanks in advance! 回答1: Where is the libevent.(a|so) file on your system? If it isn't on your system's library path then you will have to add a -L option adding its

网站架构之性能优化

我的梦境 提交于 2021-01-23 21:56:45
网站架构中 最核心 的几个要素包括: 性能 , 可用性 , 伸缩性 , 扩展性 和 安全性, 而性能又是其中最为重要的,本篇简要说下网站性能优化方面所需做的一些事情; 1. 网站性能问题概要 性能问题 说明 产生原因 大都是在用户高并发访问时产生的 主要工作 改善高并发用户访问情况下的网站访问速度 主要目的 改善用户体验,让用户觉得网站很快,一切的产品都必须站在用户的角度考虑问题 2. 网站性能测试 站在不同的视角,所关注的网站性能是不一致的: 视角 关注点 说明 用户视角 用户打开浏览器网页的响应速度,网页能再多长时间内打开,一般超过3秒就会感觉比较慢了 用户感受到的时间主要包括网络通信、服务器处理、浏览器解析时间 开发视角 主要关注应用程序本身及其子系统的性能 例如应用程序本身各业务耗时、并发量、程序是否稳定等 运维视角 更关注基础设施性能和资源利用率 如运营商带宽能力,服务器硬件配置,网络、服务器资源利用率等 站在开发、测试人员角度,性能测试的主要指标: 响应时间 、 并发数 、 吞吐量 、 服务器各性能指标 ; 性能指标 说明 测试方法 响应时间 从发出请求开始到收到最后响应数据所花费的时间 一般计算多次重复请求所花费的总响应时间,再除以请求次数 并发数 系统能够同时处理请求的数目,也代表了同时发起请求的用户数 多线程模拟并发用户 吞吐量 单位时间内系统处理的请求数量

简单谈谈apache与nginx区别

﹥>﹥吖頭↗ 提交于 2021-01-22 17:39:04
简单的说apache是计算密集型,nginx是io密集型,各有优势,不存在谁取代谁 一、关于Apache与Nginx的优势比较 不断有人跟我说Nginx比Apache好、比Apache快之类。Nginx更主要是作为反向代理,而非Web服务器使用。我翻译过一本关于反向代理的技术书籍,同时精通ApacheAPI开发,对Nginx和Apache的工作原理都略有了解,粗谈一下看法。 不管是Nginx还是Squid这种反向代理,其网络模式都是事件驱动。事件驱动其实是很老的技术,早期的select、poll都是如此。后来基于内核通知的更高级事件机制出现,如libevent里的epoll,使事件驱动性能得以提高。事件驱动的本质还是IO事件,应用程序在多个IO句柄间快速切换,实现所谓的异步IO。事件驱动服务器,最适合做的就是这种IO密集型工作,如反向代理,它在客户端与WEB服务器之间起一个数据中转作用,纯粹是IO操作,自身并不涉及到复杂计算。反向代理用事件驱动来做,显然更好,一个工作进程就可以run了,没有进程、线程管理的开销,CPU、内存消耗都小。 所以Nginx、Squid都是这样做的。当然,Nginx也可以是多进程+事件驱动的模式,几个进程跑libevent,不需要Apache那样动辄数百的进程数。Nginx处理静态文件效果也很好,那是因为静态文件本身也是磁盘IO操作,处理过程一样

idou老师教你学Istio 29:Envoy启动流程

江枫思渺然 提交于 2021-01-20 09:21:36
1. 功能概述 Envoy启动时,会启动一个进程,并在这个进程中启动很多线程,这样,可以启动很多worker线程,一般worker线程数与核心数相同,每个worker线程处理所有已配置的listener上的请求,管理连接并处理filterchain,非阻塞;同时,在这个进程中会启动一个主线程,它负责启动和停止envoy,也是通过API提供配置管理的线程,同时它收集不同的指标,管理其它线程,也是非阻塞的。 2. 重要数据结构定义 2.1 Filter 过滤器,包括listener filter、network filter和http filter。Listener filter可以用于操作连接元数据,在新接收的套接字上进行操作,例如获取原始目的地址,重定向连接等;network filter主要负责数据读写;http filter主要负责数据处理。 2.2 Listener 监听器,envoy中支持在每个线程中配置任意数量的监听器,每个监听器独立配置一定数量的network filter,也可以选择性的配置listener filter,listener filter在连接建立之前处理,network filter在连接建立之后处理。 2.3 Worker 一个worker对应一个envoy的执行线程,将listener绑定在worker上,worker负责监听、过滤和转发

ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存

佐手、 提交于 2020-12-06 06:08:35
原文: ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存        ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 part 1:给我点时间,允许我感慨一下2016年   正好有时间,总结一下最近使用的一些技术,也算是为2016年画上一个完美的句号,回顾2016年,感受颇多,感恩那些帮助我的人。展望2017年,我相信一定会遇到一个更好的自己。附上自己喜欢的一张图片:    好了~~~装逼结束,下面开始说说如何实现分布式缓存在项目中的应用。 part2:先分析以下需求   软件架构从单机到分布式遇到的问题(当然这是一个很深的问题,由于能力有限今天就说说如何实现用户信息的分布式存储的问题),也就是:走向分布式第一步:多台机器共享用户登录状态,该如何实现?例如:现在有三台机器组成了一个web的应用集群,其中一台机器用户登录,然后其他另外两台机器共享登录状态?具体请看下面的图示: 问题:如果有一个用户第一次登陆的时候,负载均衡把该用户分配到IIS1这台服务器上,该用户的信息就会被保留到IIS1这台服务器上,但是如果该用户再次访问其他的web资源的时候,被分配到IIS2上,这是IIS2中,没有改用户的信息,会发生什么?该怎么解决?该选用什么介质来保存状态比较合适? 从图中可以看出就是保存对应用户的信息

libevent 一个简单的event示例

蓝咒 提交于 2020-12-03 14:14:35
本示例程序使用libevent监控一个处于监听状态的tcp服务端socket, 并在有连接进来时打印一条消息。 #include <event.h> int sock_fd; // tcp侦听句柄 // 事件回调函数,当有socket连接时执行 void event_occurs(int fd, short evt, void *arg) { if ( evt == EV_READ && fd == sock_fd ) printf("new connection\n"); else if ( evt == EV_TIMEOUT) printf("event timeout\n"); } int main (int argc, char **argv) { int sock_fd = open_server_socket(); // 调用一个自定义的socket端口侦听函数 // 返回socket句柄。 struct event evt; // 声明一个event struct timeval timeout = {30, 0}; // 设置一次event超时为30秒 event_init(); // 初始化当前libevent, 在调用其他libevent函数之前调用一次 // 将socket句柄、监控的触发事件(EV_READ),事件发生后的回调函数、 // 回调函数参数

libevent 初始化与event_init

为君一笑 提交于 2020-12-03 12:36:20
概述 在使用libevent函数之前,首先需要调用其event_init函数进行初始化。 初始化过程主要是创建一个全局默认的current_base变量,其类型为 struct event_base。 struct event_base对象变量可由eventn_base_new()函数创建并初始化。 libevent中,部分函数默认直接操作全局current_base,部分相同功能函数 可特别指定由event_base_new()创建的其他struct event_base变量,如: event_set()默认操作的全局current_base变量, event_base_set()则操作指定的event_base变量。 event_init与event_base_new函数 该函数将调用event_base_new()函数,创建并初始化一个struct event_base对象, 并将该对象赋值给全局变量current_base,作为全局默认的event_base。 event_base_new()则用于创建一个新的event_base结构对象,并对其进行初始化。 初始化过程包括选择使用的IO事件模型,创建事件队列等。 event_base结构 struct event_base { const struct eventop *evsel; void *evbase; int

[记录]MySQL读写分离(Atlas和MySQL-proxy)

狂风中的少年 提交于 2020-11-21 14:37:41
MySQL读写分离(Atlas和MySQL-proxy) 一、阿里云使用Atlas从外网访问MySQL(RDS) (同样的方式修改配置文件可以实现代理也可以实现读写分离,具体看使用场景) 1.在跳板机上使用Atals中转访问RDS不会影响效率,不要认为使用Atals后连接数据库会慢,连接数会疯狂占用,事实情况是刚好相反。 Atlas不处理主从数据库数据同步,只是个负载均衡的连接池工具,主从同步请使用其他工具另行实现,本文只为了外网访问RDS(流量免费),实现连接池,有效利用RDS连接数。 Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平 台,每天承载的读写请求数达几十亿条。 主要功能: 1)读写分离 2)从库负载均衡 3)IP过滤 4)自动分表 5)DBA可平滑上下线DB 6)自动摘除宕机的DB 2.下载: centos 5.x/6.x: https://github.com/Qihoo360/Atlas/releases/download/2.1/Atlas-2.1.el5.x86_64.rpm (centos5.x)

libevent事件驱动库的学习视频教程

余生颓废 提交于 2020-10-03 16:12:47
这里是上传到bilibili上, 录制的libevent事件驱动的视频教程,当然这个教程中的libevent是简化版的,不过正因为是简化版的,所以更有利于学习事件驱动的核心,后期会退出libevnt最新版版本的事件驱动的学习教程 抽取libevent事件驱动库 bilibili libevent事件驱动库学习 搭建工程框架 bilibili链接 libevent--工程的建立 事件文件描述符的事件驱动和定时事件的事件驱动例程 视频链接 libevent文件描述符检测和定时事件 来源: oschina 链接: https://my.oschina.net/u/4261110/blog/4659021

第 2-7 课:使用 Spring Boot 上传文件到 FastDFS

喜夏-厌秋 提交于 2020-09-28 09:39:06
什么是 FastDFS FastDFS 是一个开源的轻量级分布式文件系统,它解决了大数据量存储和负载均衡等问题,特别适合以中小文件(建议范围:4 KB < file_size < 500 MB)为载体的在线服务,如相册网站、视频网站等。在 UC 基于 FastDFS 开发向用户提供了网盘、社区、广告和应用下载等业务的存储服务。 FastDFS 由 C 语言开发,支持 Linux、FreeBSD 等 UNIX 系统类 Google FS,不是通用的文件系统,只能通过专有 API 访问,目前提供了 C、Java 和 PHP API,为互联网应用量身定做,解决了大容量文件存储问题,追求高性能和高扩展性,FastDFS 可以看做是基于文件的 Key Value Pair 存储系统,称作分布式文件存储服务会更合适。 FastDFS 特性 文件不分块存储,上传的文件和 OS 文件系统中的文件一一对应 支持相同内容的文件只保存一份,节约磁盘空间 下载文件支持 HTTP 协议,可以使用内置 Web Server,也可以和其他 Web Server 配合使用 支持在线扩容 支持主从文件 存储服务器上可以保存文件属性(meta-data)V2.0 网络通信采用 libevent,支持大并发访问,整体性能更好 FastDFS 相关概念 FastDFS 服务端有三个角色:跟踪服务器(Tracker