quberik/application-for-domotehnika

Domotehnika公司的测试应用程序

dev-master / 1.1.x-dev 2014-11-18 15:25 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:58:11 UTC


README

实现了应用程序 - 通过Web访问用户数据的API。用户数据存储在数据库中。每个用户都有昵称、登录名和电子邮件。根据客户端应用程序的选择,选择返回数据类型(json或xml)。

安装应用程序

下载并安装 Composer
通过Composer下载应用程序

composer.phar create-project quberik/application-for-domotehnika -s dev

创建用户和数据库密码: user_domotehnikaAmyk9As449MhnO7
主机: localhost (127.0.0.1)
创建数据库

php app/console doctrine:database:create

打开控制台。切换到项目目录并创建数据库中的表

php app/console doctrine:schema:update --force  

加载固定值

php app/console doctrine:fixtures:load

本地安装ElasticSearch服务器。端口 9200
启动ElasticSearch服务器
从数据库创建Elastic索引

app/console fos:elastica:populate

设置app/cache和app/logs目录的权限为777以及所有嵌套文件和目录

应用程序功能

获取数据库中的用户列表,GET请求

http://your_site.ru/api/user.json

根据条件(昵称、登录名、电子邮件)获取用户列表,GET请求

http://your_site.ru/api/user.json?search=@hotmail.com

根据id获取用户,GET请求

http://your_site.ru/api/user/5.json

更新用户(更改昵称、电子邮件),POST请求

http://your_site.ru/api/user/5.json

可选

  1. 切换环境(开发、生产)
    http://your-site.ru/ - prod
    http://your-site.ru/app_dev.php/ - dev
  2. 自定义404和500错误页面 - 不太清楚这里的意图。目前,如果客户端向服务器发出请求并期望json,则会收到包含404或500错误的json响应。如果客户端请求xml,则错误响应也会以xml格式返回。

  3. API仅对授权客户端应用程序开放。登录名和密码: demodemo

附加任务

5百万访问量的环境

  1. Linux CentOs,版本 > 6
  2. PHP 5.3.3或更高版本
  3. MySql 5.5.33或更高版本
  4. Nginx 1.5.3
  5. 在nginx.conf文件中关闭Access log access_log off;
  6. 安装内部PHP缓存 - APC
  7. 由于将使用InnoDB作为mysql引擎,因此将缓冲区大小设置为服务器总可用内存的75%(在my.cnf文件中将key_buffer相应减小)。
  8. 在此文件中将innodb_flush_log_at_trx_commit设置为0。对于大量数据,这将显著提高写入速度(不需要在每次操作后将写入缓冲区刷新到磁盘)。
  9. 在此文件中启用内部MySQL缓存: query_cache_size = 32M
  10. 将Nginx的工作进程数量设置为内核数量
  11. 将ElasticSearch服务器迁移到单独的服务器或多个服务器
  12. 将MySQL数据库迁移到其他服务器。可以配置MySQL复制到多个服务器。
  13. 启用Doctrine缓存和文件缓存
  14. 垂直和水平扩展
  15. 使用zabbix监视系统负载和节点工作
  16. 最后,使用多个服务器进行响应,而不是一个

演示

http://ussurka.ru/api/user.json
http://ussurka.ru/api/user.json?search=@gmail.com
http://ussurka.ru/api/user/2.json

登录: demo
密码: demo

很抱歉,没有编写单元测试,因为时间不够