• 表示支持 👍 👍 👍

    冒昧的问几个想法或者问题😅 ,面试官最担心的是什么?是水分

    1. 大部分常见题都可以通过搜索引擎解决,如何才能正确的 charge 答题者的思路?
    2. 一旦题目被答题者分享,那么这些题目是否还能反复的使用?
    • 如果题目可以反复使用,那么你的产品或许可以考虑做一个题库「热度、经典、最新、大厂」?
    • 如果你会支持答题者作出分享,那么又可以多考虑一个分享平台,或许还能加上评价?

    但这样,看起来会越长越像 leetcode 吗?

  • 问问关于 go-micro 是不是会限制了项目的生态?

    为什么我要放弃 go-micro 框架?

    经过这些思考过后,我们的决定是去 go-micro 框架,拥抱更轻量级的基础框架。 华尔街见闻基于 istio 的服务网格实践

  • 我们公司有一个ruby 1.9.3 / rails 3.x 的项目

    在用 sidekiq-cron

  • 如何合并这两条语句 at 2019年05月16日
    x = x.to_i.succ
    x = x.to_i.next
    

    或者你自己写一个方法变成你想要的简单,其实,都没什么卵用,还不如宁愿多写几行让别人更容易看懂

  • SSO 是前提,不做 SSO 你也还是需要想办法做数据共享

    一般场景有两种,全栈 or 前后端分离,但都需要鉴权统一请求 SSO

    • 全栈

      Java 做 Java 的,Rails 做 Rails 的,「提供另外一个系统的 URL 跳转」,通过跳转的方式进行切换,但是在用户体验上来说,浏览器页面始终在一个系统

    • 前后端分离

      前后端分离我知道的两种方式

      1. 前端控制,旧的系统页面不动,新的页面请求 Rails API
      2. 流量转发,类似全栈的跳转,将指定规则的流量转到 Rails API,使用一些工具如:Nginx

    题主随便建两个应用尝试一下应该就会有想法了💡


    😅 如有意见,还望轻喷 ...

  • obfuscate_id 管用,非常感谢

  • 很抱歉,看到大家的回答我才意识到自己的问题描述的非常差

    这个问题最重要的是在于转成 Int 的同时,数据已经被混淆

  • 非常感谢大家的积极回答,你们的每一个意见和建议对我都有或多或少的帮助

    最近有点少来了

    目前先用octopus

    能用,有点丑陋

    module CoreExt
      module ActiveRecord
        module ConnectionAdapters
          module ExecutionControl
            # 切换TiDB connection
            def tidb_conn
              ::ActiveRecord::Base.connection_proxy.current_shard = :tidb
              ::ActiveRecord::Base.connection_proxy
            end
    
            # 记录当前线程使用的connection,当切换tidb后,一直使用tidb
            def current_connection
              Thread.current['octopus.select_connection'] ||= :master
            end
    
            def current_connection=(shard_symbol)
              Thread.current['octopus.select_connection'] = shard_symbol
            end
    
            def execute(*args)
              # 只拦截 SELECT 并且是白名单内的
              return super unless args.first =~ /^SELECT/
              # 这里很蠢,用args.last的"Order Load"来判断当前select table
              return super unless WHITELIST.include?(args.last[0...-5])
              if ::ActiveRecord::Base.connection_proxy.current_shard == :master
                if self.current_connection == :master
                  result = super
                  return result if result.count > 0
                  self.current_connection = :tidb
                end
                result = tidb_conn.select_connection.execute(args.first, args.last)
              else
                result = super
                self.current_connection = :tidb
              end
              ::ActiveRecord::Base.connection_proxy.clean_connection_proxy
              result
            end
    
            private
            # 需要使用tidb的 table 名单
            WHITELIST = ["Order"...]
          end
        end
      end
    end
    
    ActiveRecord::ConnectionAdapters::Mysql2Adapter.include CoreExt::ActiveRecord::ConnectionAdapters::ExecutionControl
    

    这个贴先结了吧,有问题再重新开一个 再次感谢大家!!! 🙏 🙏 🙏

  • 用两种 DB 并不是为了处理冷热的场景而决定使用两种 DB, 而是打算使用 TiDB,属于试用阶段而考虑让冷数据先放 TiDB

    proxy,目前是在研究的,我想的是 proxy 并非 proxy db,毕竟目前还只是针对一个 model

    至于你说过家家的方案,sorry,可能是我个人想出来的解决思路有点 low

  • 数据已经分布好了,现在正解决如何不造成代码大量修改的情况下兼容分库查询

    目前做了一次在 controller 使用octopus手动切换查询的实验

    但这个有点痛苦,你得找出所有相关的 controller,然后重复着 mysql 找不到去 Tidb