接入问题总结

redis相关

1.集合元素不宜过多


接入问题总结_第1张图片
CF0629D1-83FE-4720-AFB8-31EA9EEEC8D7.png

2.php redis pipeline 不支持

mongo 相关

1. 基于mongo连接数限制,war的集群架构制约下,php进程很快就会把一个mongo实例连接数占满,与腾讯DBA沟通,由mongo集群来解决连接数占满的问题

php 相关
1.问题描述:  
腾讯dba给的mongo数据库账号密码 含有 @,:%等字符,直接连接数据库会与数据库指定的特殊字符冲突,
导致连接不上
解决:
      1.直接把dsn串中的账号密码含有特殊字符的 用rawurlencode函数进行urlencode
改前: 'mongodb://siteRootAdmin:password@[email protected]:31001,172.16.100.90:
32001/?replicaSet=replset_1‘            

改后:'mongodb://siteRootAdmin:’.rawurlencode('password@123').'@172.16.100.90
:31001,172.16.100.90:32001/?replicaSet=replset_1‘

参考手册:http://php.net/manual/zh/mongodb-driver-manager.construct.php

2.用mogndb提供的第二个参数 以连接选项参数给传递过去
        MongoDB\Driver\Manager::__construct ( string $uri [, array $options 
        [, array $driverOptions ]]
        $option[‘username’] = $username;
        $option[‘password’] = $password;
2.问题描述:   php Cli模式下,多进程对数据库连接的解决办法
    php fork子进程,会把主进程环境原样复制一份进行执行子进程的逻辑。在多进程下,如果其中一个
    进程先退出,像mongodb这种连接实例会被释放掉。php 能够持久连接mongo  就是采用dsn连接信息 
     来存储mongo连接实例,一旦进程退出,连接实例等进程上的数据都会释放。
   解决:在cli模式,fork子进程工作下   在连接mongo时  den连接串  
   尾随一个参数即可   $dsn&rand=getmypid()

3.mongo connect 问题
 问题描述:php进程连接实例有故障了,需要访问完500次(php-fpm  pm.max_requests设定的值 这里
 设500),这个php进程退出后,才会重新连接 。这个是pconnect带来的负作用。 如果在线人数较高的时候,这500次很快就被调用完了,如果在线人数不高的时候,比如停机维护的时候,
 某个db故障了,会感觉一直报错
解决:reload或者重起php-fpm

业务相关

1.问题描述:腾讯matt在IDIC布署好体验服服务后,我们用客户端进行接入,发现global去msdk.qq.com
域名下验证时,不允许访问msdk.qq.com .

注:腾讯的IDIC机房  是不允许访况 qq.com 这个域名的,在配置的时候要注意,腾讯有对应的别的
域名或ip处理

解决:找腾讯msdk接口人,提供IDIC机房访问的sdk地址,http://msdk.tencent-cloud.net/ 即可

你可能感兴趣的:(接入问题总结)