workerman json mysql_workerman-json-rpc

软件简介

一款使用PHP开发的高性能Json Rpc框架,框架使用TCP/IP协议直接传输json数据,系统集成统计监控模块,开发部署维护非常简。workerman-

json-rpc 包含了服务端和客户端。

特性:

使用PHP开发,与PHP紧密结合

PHP 多进程 ,充分利用服务器多cpu资源

支持 libevent 事件轮询库,支持高并发

支持服务 平滑重启 ,热升级程序,不影响用户

支持PHP 文件更新检测 及自动加载

使用 JSON 作为协议,开发调试非常方便

集成统计监控模块,方便查看服务调用量、成功率、耗时等情况

自带PHP客户端, 支持异步并发调用,实现并行计算

独立运行 ,不依赖nginx、php-fpm、apache等容器

安装部署超级方便,下载解压后启动服务即可使用

启动界面:

532ce5f6b07dbf6f4bf3d6f17079b65c.png

自带的监控模块:

1d0d05bb3beed672763226f943f6c0db.png

服务端开发示例(例如User服务)

创建文件./applications/JsonRpc/Services/User.php

class User

{

public static function getInfoByUid($uid)

{

// ....

}

public static function getEmail($uid)

{

// ...

}

}

客户端使用示例

客户端同步调用和异步调用

// 配置服务端列表,站点入口统一配置一次即可

RpcClient::config(array(

'tcp://127.0.0.1:2015',

'tcp://127.0.0.1:2015'

));

// 获取实例

$user_client = RpcClient::instance('User');

// ====同步调用方法示例====

$ret_sync = $user_client->getInfoByUid($uid);

// ==== 异步调用方法示例 ====

// 异步调用User::getInfoByUid方法

$user_client->asend_getInfoByUid($uid);

// 异步调用User::getEmail方法

$user_client->asend_getEmail($uid);

这里是其它的业务代码,此时服务端User::getInfoByUid、User::getEmail

两个方法正在并发执行,调用者此时可以继续做其它业务逻辑

.........业务逻辑...........

.........业务逻辑...........

// 需要数据的时候异步获取数据

$ret_async1 = $user_client->arecv_getEmail($uid);

$ret_async2 = $user_client->arecv_getInfoByUid($uid);

b80da0954784c2880fea0119926b6f13.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web站点性能测试经验点滴

对web站点性能测试,从测试工具的角度,介绍几点经验。 1、在执行客户端并发性能测试的过程中,需要同时监控数据库服务器、web服务器以及网络资源等使用情况,以便对系统的性能做全面评估。 2、录制的脚本需要编辑,有时需…

Hibernate的CURD操作

1、保存:Session的save方法 Testpublic void testSave() {Customer c new Customer();c.setCustName("测试");Session s HibernateUtils.openSession();Transaction t s.beginTransaction();s.save(c);t.commit();s.close();}2、查询:Sess…

thinkphp mysql日志_MySQL的日志基础知识及基本操作学习教程

MySQL日志主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等…

JavaScript里的两个等于号和三个等于号的区别

1、两个等于号: 它在作比较时会尝试自动转换 比如下面的程序:输出为true var sNum "10";var iNum 10;alert(sNum iNum) //弹出为truesNum是string类型,iNum是number类型,sNum会尝试转换,sNum转换成number…

spring boot 集合mysql_Spring boot整合mysql和druid

Spring boot整合mysql和druid集成mysql数据库引入依赖mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-jdbc添加数据库配置Spring boot项目的resources目录下的applicataion.properties# datasourcespring.datasource.urljdbc:mysql://127.0.0.1…

在博客里轻松使用LaTeX 数学公式[转]

笔者最近的博文有不少数学相关内容,发现利用一些网上服务、jQuery和CSS,可以更轻松地在博客里使用语法排版方程式。是基于的排版系统。而就是美国著明计算机教授高德纳(Donald E. Knuth),为了编写他的巨著《计算机程序设计艺术(The Art of Co…

Hibernate持久化对象的状态:瞬时状态、持久化状态、托管状态

瞬时状态:对象由new操作符创建,但没有和session关联,也就是我们刚刚创建的对象,还没有保存到数据库中去持久化状态:对象被保存到数据库中去了,并且还与session有关联托管状态:对象已经被保存中去…

oracle查看所有用户_Oracle实用命令查看共用一个表空间的所有用户

概述有朋友问到如何查出表空间都被哪些用户使用的一些方法,因为有几种情况需要考虑,也顺便做个总结。需求:如何查看共用一个表空间的所有用户查看某表空间下表的所有者使用dba用户查询:1、如果先要知道表空间的命名,可…

Hibernate中把Session和线程绑定的配置

我们一开始用session都用HibernateUtil工具类获得Session对象,因为该工具类可以保证将线程不安全的Session绑定到当前线程内,但每次返回的对象都是一个新的session,我写了一个测试方法如下: Testpublic void test() {Session s1 …

lpt监控安装_lpt1(如何在lpt1端口安装打印机)

LPT就是俗称的并口,一般电脑只有一个并口,设备管理器里面显示为LPT1,打印机常见的端口就是LPT口和USB口,新的主板很多已经取消了板载LPT接口,还有少数专.是用网线连接电脑的接口吗??&#xff1f…

awk 多文件操作2种实现方法

我们经常会将2个有关联文本文件进行合并处理。分别从不同文件获取需要的列,然后,整体输出到一起。awk进行多文件处理时候,常常会遇到2个方面问题,第一个是怎么样合并多个文件为一个文件。第二个问题就是怎么样将多行合并为一行显示…

mysql 3.5安装_MYSQL学习笔记-06-搭建数据库

文章内容输出来源:拉勾教育Java高薪训练营1. 安装说明基于Ubuntu Linux系统安装,MySQL版本是5.7.29。安装方式是通过官网下载相应的tar.gz压缩包进行安装。这种方式需要自己动手的部分比较多,如配置文件的设计、环境变量的配置、开机启动服务…

Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询

hql语句和sql语句不同,当我们使用hql语句查询时,要把SQL语句的表写成 实体类的类名,字段写成实体类的属性 基本查询:查出数据库中所有的数据 代码如下: //基本查询,查询所有的实体Testpublic void test1() {//获取当…

【转】小周立波张冯喜引爆达人秀 小童星家居照大曝光

原文地址:http://www.soufun.com/news/2010-10-13/3897753.html 小小年纪,一身西装,发式清爽,腔调十足,有观众说她“天才有余,天真不足”,她自己说“进演艺圈太累了”,刚踏进演艺圈就…

mysql命令教学_mysql常用命令有什么

mysql常用命令有:1、“create database name;”;2、“use databasename;”;3、“drop database name”;4、“show tables;”;5、“select version”等等。MySQL 数据库常用命令1、MySQL常用命令create database name; …

Struts2一对多配置

在多表映射配置时,我们应该遵循以下不步骤: 确定两张表之间的关系在数据库中实现两张表之间的关系建立在实体类中描述出两个实体类之间的关系在映射配置文件中建立两个实体和两张表之间的关系 我们就按照上面的步骤做,我这里有一张联系人表和…

调整和改编赛车游戏——游戏屏幕

游戏屏幕 赛车游戏中有很多不同的游戏屏幕,这些都是由RacingGame类中的gameScreens堆栈管理的。本节介绍游戏中使用的大部分屏幕和对应的功能。大多数游戏屏幕相当简单,但其他的有点复杂并实现了一个单元测试,通过单元测试能更好地了解这个类…

mysql 锁 代码_MySQL中的锁实例

表结构:id:自增主键,a:无索引,b:普通索引CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,a int(4) NOT NULL DEFAULT 0,b int(4) NOT NULL DEFAULT 0,PRIMARY KEY (id),KEY b (b) USING BTREE) EN…

Linux文件属性之r、w、x

r: 对于文件来说,具有读取文件内容的权限;对于目录来说,具有浏览目录内文件的权限 w: 对于文件,具有修改文件内容的权限;对于目录,具有新建、删除、移动、修改文件目录内的权限 …

trie树--详解

MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 文章作者:yx_th000 文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。关键词:trie trie树 数据结构前几天学习了并查集和trie树&am…