日活 3K 左右的 app,后端有必要上 Java 吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cnbattle
V2EX    程序员

日活 3K 左右的 app,后端有必要上 Java 吗?

  •  
  •   cnbattle
    cnbattle 2017-12-17 18:58:09 +08:00 via Android 13426 次点击
    这是一个创建于 2860 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前是 php,thinkphp5.0

    我的感觉是 php 又背锅,让我们看看 Java 书,3K 左右的日活就是这样,php 都没玩的怎么样,就要上 Java,之前还提过要换 nodeJS …

    目前对公司程序的了解,问题是在数据库方面,无内部编码规范,数据库设计规范,导致数据库结构惨不忍睹,有很多在我去之前遗留的数据库设计问题,不同属性的数据存在同一个字段里…本人虽然技术一般,但对技术规范代码质量等还是有一些追求的

    怎么变成吐槽了…干的就是没那么顺心

    第 1 条附言    2017-12-18 09:44:00 +08:00
    1.珠宝行业,互联网转型做的 app,养活公司没啥问题
    2.不是黑 php 啊,别跑题了,同事一说都是三五年以上的 phper,我入职面试时自称一年半,不敢称两年的,也点绝望啊,我只是接触 web wap 网站时间久点,大概 10 年在学校开始的折腾的,但只是对别人的程序 html 级别的折腾
    99 条回复    2017-12-20 13:06:32 +08:00
    toarya
        1
    toarya  
       2017-12-17 19:08:32 +08:00
    微博不也是 PHP 么,和语言关系不大。
    loading
        2
    loading  
       2017-12-17 19:09:19 +08:00 via Android
    php 哪个版本,7 不是很彪悍吗?
    firefox12
        3
    firefox12  
       2017-12-17 19:14:22 +08:00 via iPhone
    3k 日活是什么项目?能养活一个公司吗?
    nosay
        4
    nosay  
       2017-12-17 19:14:48 +08:00   4
    脱离了当前开发人员的技能水平,然后讨论上哪个语言,有什么意义?现学现卖,真不把 java 当回事啊...
    sagaxu
        5
    sagaxu  
       2017-12-17 19:15:35 +08:00   2
    我司 app 日活是你 1000 倍以上了,照样用 PHP 扛住了啊
    zhx1991
        6
    zhx1991  
       2017-12-17 19:16:03 +08:00   2
    3k 和语言没啥关系
    wxsm
        7
    wxsm  
       2017-12-17 19:18:47 +08:00 via iPhone   2
    现学一个月 java,不知道能扛住 300 不
    zjsxwc
        8
    zjsxwc  
       2017-12-17 19:20:13 +08:00
    楼主自己都说了是数据库方面问题了(数据库设计以及 SQL 查询效率问题),那么楼主领导让他换 Java,就是外行指挥了,跳槽吧
    prolic
        9
    prolic  
       2017-12-17 19:20:55 +08:00
    3k 日活都吃不下还是想想其他的问题吧,php 达到 300qps 还是毫无压力的
    alwayshere
        10
    alwayshere  
       2017-12-17 19:22:34 +08:00
    这就好比一个日访问量 3k ip 的网站,用 php 行不行?别说 php,你用小霸王做服务器都行,这么小的访问量,php 不背这个锅
    alwayshere
        11
    alwayshere  
       2017-12-17 19:23:56 +08:00
    忘了说了,我手上一个曾经 3k ip 的站,自己用 php 写的,平均在线 30 人,还不是一样跑的飞起
    zj299792458
        12
    zj299792458  
       2017-12-17 19:26:41 +08:00 via iPhone
    这么小,用 python 就够了
    bramblex
        13
    bramblex  
       2017-12-17 19:29:45 +08:00   5
    日活 3k ...

    我们这些专业 php 黑都看不下去了...
    bramblex
        14
    bramblex  
       2017-12-17 19:30:42 +08:00
    @zj299792458

    我们拿 python 撑过 800 w uv / 3000 w pv / 20 w 活跃用户.
    jtsai
        15
    jtsai  
       2017-12-17 19:43:24 +08:00 via Android   1
    你们有考虑换过一个运维人员吗?
    dangge
        16
    dangge  
       2017-12-17 19:46:19 +08:00   1
    你们需要请一个 DBA 来咨询.
    laohubuchiyu
        17
    laohubuchiyu  
       2017-12-17 19:55:17 +08:00   3
    哪个公司的瓶颈在语言啊
    tomczhen
        18
    tomczhen  
       2017-12-17 20:01:03 +08:00   1
    已经上线的项目,就算能解决初期造遗留的问题也需要很大的代价技术债务越晚偿还代价越高,根本不是多个岗位能简单解决的事。

    要是真有专业点的运维或者 DBA 也根本不会出现现在的问题。

    说白了就是“短期高估”期望一个运维 /DBA 能解决所有问题;“长期低估”运维 /DBA 又没多少工作量,专门请一个太浪费,让开发顺便干了就行。
    beginor
        19
    beginor  
       2017-12-17 20:08:15 +08:00 via Android   1
    应该花心思重构数据库了吧
    Lax
        20
    Lax  
       2017-12-17 20:10:25 +08:00 via iPad
    做容量评估了吗,做高可用了吗,做备份(和恢复)方案了吗?

    本人长期提供兼职运维咨询服务,欢迎联系。
    eDeeraiD0thei6Oh
        21
    eDeeraiD0thei6Oh  
       2017-12-17 20:11:38 +08:00
    直接说什么 app 大家分析帮你
    chinvo
        22
    chinvo  
       2017-12-17 21:13:23 +08:00
    直接说什么 app 大家以后好躲着点
    lhx2008
        23
    lhx2008  
       2017-12-17 21:16:09 +08:00
    php 3k 撑不住,java 3k 的时候肯定已经挂了
    pynix
        24
    pynix  
       2017-12-17 21:31:52 +08:00
    不同属性的数据存在同一个字段里?
    json
    serializer
    cnbattle
        25
    cnbattle  
    OP
       2017-12-17 21:35:38 +08:00 via Android
    @pynix 不是纯链接在一起组成 title
    chinvo
        26
    chinvo  
       2017-12-17 21:38:19 +08:00
    优化数据库啊

    之前重构一个系统,只重构了数据库和数据抽象层就得到大幅度性能提升
    winglight2016
        27
    winglight2016  
       2017-12-17 21:47:47 +08:00
    这点用户量,整个系统推翻了重做代价比较小,不要想着重构了,这种活就是撵人走的
    Moker
        28
    Moker  
       2017-12-17 21:58:59 +08:00
    肯定不是语言问题
    alcarl
        29
    alcarl  
       2017-12-17 22:26:16 +08:00 via Android
    就算数据库结构设计的再奇葩,只要适当加些合理的索引,然后堆硬件多核心 24 核心以上加大内存 64g 以上,扛 3000 个日活绝对毛毛雨。。。。。
    jiangzhuo
        30
    jiangzhuo  
       2017-12-17 22:27:05 +08:00
    楼主是不是少打了一个 W 是 3kw 吧
    oswuhan
        31
    oswuhan  
       2017-12-17 22:49:41 +08:00
    可以考虑下使用 BaaS 服务。国外的 firebase,国内的 leancloud、野狗、bmob,还有一个知晓云,不过该平台貌似专注微信小程序开发。
    HanSonJ
        32
    HanSonJ  
       2017-12-18 00:32:37 +08:00
    平时大家黑 PHP 我都是笑笑不说话。这次忍不了,强行甩锅的节奏,重构数据库吧
    realpg
        33
    realpg  
    PRO
       2017-12-18 00:36:49 +08:00
    LNMP 单古董物理服务器 日千万请求无压力……
    Kilerd
        34
    Kilerd  
       2017-12-18 00:50:49 +08:00
    日活 3k,平均下来 撑死就 100QPS 吧。

    这点请求 php 都搞不定,那就是你家程序员该背的锅了。
    Axurez
        35
    Axurez  
       2017-12-18 06:48:56 +08:00
    要不你试试 swoole ?
    Axurez
        36
    Axurez  
       2017-12-18 06:49:28 +08:00
    也不用说「据我了解」,直接 profile 一下给他看呗
    qcloud
        37
    qcloud  
       2017-12-18 07:55:55 +08:00 via iPhone
    @bramblex 哈哈哈哈哈哈
    t2doo
        38
    t2doo  
       2017-12-18 08:27:32 +08:00
    俺那小破公司,日活最多 10 吧,Java。。。我只想说,跟语言没关系哈
    ob
        39
    ob  
       2017-12-18 08:31:21 +08:00 via Android
    我觉得有机会多学一门语言应该是好事,哈哈
    opengps
        40
    opengps  
       2017-12-18 08:39:03 +08:00
    合理的架构,后端用啥都行
    sagaxu
        41
    sagaxu  
       2017-12-18 08:44:02 +08:00 via Android
    @t2doo 跟语言关系不大,跟团队中位数工资关系极大
    to2false
        42
    to2false  
       2017-12-18 08:48:55 +08:00 via iPhone
    日活 3k,在用 java,要不要用 c++重构(狗头
    Takahashi
        43
    Takahashi  
       2017-12-18 08:59:18 +08:00   1
    日活 3K。。高级黑
    SourceMan
        44
    SourceMan  
       2017-12-18 09:00:45 +08:00 via iPhone
    你这个黑的很有水平
    anteros
        45
    anteros  
       2017-12-18 09:03:19 +08:00
    用机器码 01 吧,不然还真扛不住呢。
    Norie
        46
    Norie  
       2017-12-18 09:09:29 +08:00
    php 被黑得最惨的一次,黑得不知不觉
    afeicool
        47
    afeicool  
       2017-12-18 09:10:01 +08:00
    你们领导应该是行家,用 php 天天完事就可以走了,用 java 天天加班,这样看起来大家都更努力。
    alber1986
        48
    alber1986  
       2017-12-18 09:19:54 +08:00
    php 码农路过,表示这个锅我们不背
    knva
        49
    knva  
       2017-12-18 09:22:36 +08:00
    PHP 3k 都撑不住,java 估计早挂了.
    RorschachZZZ
        50
    RorschachZZZ  
       2017-12-18 09:26:34 +08:00
    楼主是故意来黑 php 的吗。。。 。
    FradSer
        51
    FradSer  
       2017-12-18 09:27:51 +08:00
    @alcarl 真鸡儿有道理
    killerv
        52
    killerv  
       2017-12-18 09:34:58 +08:00
    日活 3k 就把锅甩给语言……
    8355
        53
    8355  
       2017-12-18 09:39:40 +08:00
    3000 日活关键还是看并发多少. 如果只是少量并发常规访问的话 512 机器都扛得住. 你跟老板聊聊 给点时间重构一下上 php7.如果做的好年后涨点工资.
    gamecreating
        54
    gamecreating  
       2017-12-18 09:40:30 +08:00
    你让我们游戏服务器 同时在线 1 万人怎么想 ....
    日活 3000 用 asp 都够了
    YMB
        55
    YMB  
       2017-12-18 09:42:47 +08:00
    我能告诉你,阿里也用 PHP 吗。
    纯属架构问题!
    l9rw
        56
    l9rw  
       2017-12-18 09:44:30 +08:00
    这种量级瓶颈大多在数据库,这个锅 php 不背
    OMGZui
        57
    OMGZui  
       2017-12-18 09:45:00 +08:00
    就目前来看,请去说服你的领导
    SourceMan
        58
    SourceMan  
       2017-12-18 09:47:00 +08:00 via iPhone
    @l9rw mysql 说请不要用这个量级侮辱我,哈哈哈
    lianxiaoyi
        59
    lianxiaoyi  
       2017-12-18 10:10:46 +08:00
    这锅 php 不背,老衲单一个验证接口日活都在 800 多万以上,(4 台 2 核 4G 服务器,平均跑在 25%,遇到大户同时请求,就会有一台 CPU 到 80%,用的 DNS 负载均衡,国内带宽太 TM 贵了),日志服务器用的一台 1 核 1G 的服务器,这台服务器 php 层日请求超千万,python udp 层日请求量超 3000 万(流量太贵,所以用的 udp ),现 CPU 跑在 20%。。好好整理你们数据库才是关键。。。。
    yujieyu7
        60
    yujieyu7  
       2017-12-18 10:25:22 +08:00
    这公司没前途,早点撤吧
    colinlet
        61
    colinlet  
       2017-12-18 10:26:10 +08:00
    我们项目日活百万,并发上千,php 也没有背锅啊,就是负载均衡+缓存+MySQL
    0ZXYDDu796nVCFxq
        62
    0ZXYDDu796nVCFxq  
       2017-12-18 10:27:19 +08:00
    并发 3K 再来考虑语言问题
    jjx
        63
    jjx  
       2017-12-18 10:33:27 +08:00
    先说数据量
    再说需求

    比方说总是对百万以上的数据做汇总查询, 那怎么优化都快不了, 类似这样的需求都是以前做 c/s 企业软件的, 转到互联网带来的, 互联网应用对响应要求高, 老早的桌面内部应用对响应要求低, 在互联网化时需求需要响应调整
    zhengxiaowai
        64
    zhengxiaowai  
       2017-12-18 10:40:14 +08:00
    3K 日活???? Python 不用优化分分钟扛下来
    sagaxu
        65
    sagaxu  
       2017-12-18 10:44:58 +08:00
    同事一说都是三五年以上的 phper
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    是一个月的经验重复了三五年,还是成长了三五年?
    xuanyan
        66
    xuanyan  
       2017-12-18 10:58:23 +08:00
    百万日活,php 都扛得住,跟语言关系不大
    skadi
        67
    skadi  
       2017-12-18 11:02:07 +08:00
    先做一下 性能分析吧. 看看瓶颈在哪.
    run2
        68
    run2  
       2017-12-18 11:04:10 +08:00
    应该是这个吧 https://www.jaadee.com/
    那么为啥后台最先选型时没有选已有的开源架构而是用 thinkphp 做了呢 ?
    qcloud
        69
    qcloud  
       2017-12-18 11:10:39 +08:00 via iPhone
    @sobigfish 好慢
    lwbjing
        70
    lwbjing  
       2017-12-18 11:11:55 +08:00
    PHP 要是能说话,肯定要骂一句 mmp
    vus520
        71
    vus520  
       2017-12-18 11:14:59 +08:00
    每秒请求 3000 的业务照样 php
    gaoxu387
        72
    gaoxu387  
       2017-12-18 11:36:11 +08:00
    不如想想为什么会这样,解决问题才是最重要的,是数据库慢查询?是某些接口里有 curl 请求太慢?是连接了缓存服务器导致的?
    看看数据库的慢日志、缓存的慢日志、php-fpm 的慢日志,结合 app 的日志、xdebug、strace、gdb 分析分析吧
    cnbattle
        73
    cnbattle  
    OP
       2017-12-18 11:42:19 +08:00 via Android
    @sobigfish 额,是… app 年初开始做的,我 7 月入职的
    satanandroid
        74
    satanandroid  
       2017-12-18 11:43:52 +08:00
    后台同 thinkphp 日活 10W
    php 表示,这个锅我不背
    sutra
        75
    sutra  
       2017-12-18 11:45:15 +08:00
    要想横向扩展,主要看架构,不是语言。
    wekw
        76
    wekw  
       2017-12-18 11:56:56 +08:00
    只可能是数据库问题
    LukeChien
        77
    LukeChien  
       2017-12-18 12:02:43 +08:00 via Android
    上 Java 也不行,得上 Oracle
    vjnjc
        78
    vjnjc  
       2017-12-18 12:09:36 +08:00
    话说改数据库字段的话要改查询代码的吧。。。
    这种情况简单粗暴是不是只能开索引,堆硬件?也不能拆到多台数据库服务器吧?
    leibusi
        79
    leibusi  
       2017-12-18 12:57:50 +08:00 via Android
    又黑我大 PHP
    likuku
        80
    likuku  
       2017-12-18 13:05:16 +08:00
    工作资历长短,和能力并不能直接划等号,职场里这是常识了吧。
    Denny
        81
    Denny  
       2017-12-18 13:12:46 +08:00
    @cnbattle 求头像原图
    cnbattle
        82
    cnbattle  
    OP
       2017-12-18 13:14:55 +08:00   1
    @vjnjc 已经到了加索引和缓存不能解决问题的地步了,服务器是分布式数据库集群,话说公司服务器是个大牛,给 freebsd 贡献代码的人,都是一开始数据库表设计不好,还有一个内部需要变更太频繁
    mrzero
        83
    mrzero  
       2017-12-18 13:16:46 +08:00
    你得知道性能瓶颈在哪才能优化啊…… 3k 的日活,能有啥瓶颈
    atcdef
        84
    atcdef  
       2017-12-18 13:19:15 +08:00
    这类型的后端,应该是以读为主吧,既然这样的话,如果性能瓶颈确实出在数据库上,直接上多个数据库副本,分摊一下查询请求,把眼下的问题先应付过去再说。然后再慢慢想办法重构也好,重做也罢,走人也行,看着办,哈哈
    we3613040
        85
    we3613040  
       2017-12-18 13:19:59 +08:00
    垃圾啊,日活 3k,关语言什么关系,素质不行明显
    mrzero
        86
    mrzero  
       2017-12-18 13:21:19 +08:00
    先把慢查询一个个找出来,改表结构、迁数据,加索引;再不行加 proxy 上 MySQL 集群;然后如果是读多,加一层 redis 缓存……但我感觉日活 3k …… emmmmm
    woshipanghu
        87
    woshipanghu  
       2017-12-18 13:34:35 +08:00
    说分布式 集群 缓存的好笑不好笑
    3k 日活 1 核 1g 的服务器都稳稳的处理了 还需要那么多花样?
    Moker
        88
    Moker  
       2017-12-18 13:36:28 +08:00
    谈谈数据量吧 加了索引和缓存都还不行?
    cnbattle
        89
    cnbattle  
    OP
       2017-12-18 14:11:37 +08:00
    @woshipanghu 我说的只是 app 日活 pc 的也是在一起的,具体不详
    slgz
        90
    slgz  
       2017-12-18 15:21:32 +08:00
    @tomczhen 所以,对于已上线的项目。后期要整改的时候,也就是解决之前遗留的问题,没什么好办法了吗?
    for8ever
        91
    for8ever  
       2017-12-18 15:32:22 +08:00
    用 Node.js 吧,自学 3 小时后就可以了,日活 300k 都没问题
    vjnjc
        92
    vjnjc  
       2017-12-18 15:49:36 +08:00
    @cnbattle 我倒是感觉日活 3k 挺多的呀,对我们这种小公司来说
    funcman
        93
    funcman  
       2017-12-18 18:09:33 +08:00
    这个日活,随便写个 PHP 挂到应用云上不就行了。
    pynix
        94
    pynix  
       2017-12-18 18:49:56 +08:00
    @pynix 如果只是单纯显示,没有解析拆分的需求,那也可以吧。。。
    tomczhen
        95
    tomczhen  
       2017-12-18 19:08:09 +08:00
    @slgz 技术债务总是要还的,只是什么时候还,由谁来还的问题。并不是说不欠债就是好的,有时也会为了一些妥协而主动选择债务。

    再说了,项目没到还债的时候就死掉的也是很多的。不管是主动选择还是被动,债务只要可控就是可以接受的大不了离职嘛 \_(ツ)_/。

    通常说的解决方案就是重构,不过出于自身利益风险考虑我觉得更多人都喜欢重写毕竟就算是一坨屎也是自己的香一些。

    我只是一个负责背锅的运维,代码重构的经验还是让开发来传授吧,毕竟他们经验比较多 :doge:
    tanszhe
        96
    tanszhe  
       2017-12-18 20:43:20 +08:00
    是来搞笑的吧,3000 日活太小了 几乎就是九牛一毛 忽略不计
    alcarl
        97
    alcarl  
       2017-12-18 21:57:36 +08:00 via Android
    @cnbattle 3000 日活的 app 还有缓存的分布式数据库集群。。。。。。。。你这三千人是每秒操作一百次以上录入 50 条以上数据的机器人吗?( ̄へ ̄)
    Sapp
        98
    Sapp  
       2017-12-18 23:42:47 +08:00 via iPhone
    go、ruby 五年经验的可以当十年用,php 五年的你就当两年用,这样就不会出问题了,真不是看不起这个语言,而是 php 用的公司太多了,大量的低端外包公司都用他,你根本不知道他是不是做了五年的建站。
    LJ2010
        99
    LJ2010  
       2017-12-20 13:06:32 +08:00
    和 php 有毛关系。。。90%都是代码问题,如果真是 php 有问题。。那么 baidu,facebook 什么的还用 php 干嘛?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3517 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 10:19 PVG 18:19 LAX 03:19 JFK 06:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86