Hello,大家好,最近两周一直在加班,9106 的节奏的,真的是累成狗了。不过最近项目进入提测,就稍微闲了一点。 上周的时候,看了一场架构师之路沈剑老师的一场直播,最近又重温了一下,根据自己的认知总结了一下,分享给大家。 MQ 想必大家或多或少都用过,接入 MQ 之后的整体架构如下: 可以看到使用 MQ 之后,上下游通信就变成图上的这种方式。 这种跨进程的通信方式,我们还有一种常用的解决方案,使用 Dubbo 等这类 RPC 服务。 理论上使用 RPC 的跨进程通信的场景,使用 MQ 也能解决,当然反过来也能说通。 那为什么不都用 RPC,或者 MQ 来解决那? 这其实都是业务场景决定的,抛开业务场景来谈架构都是耍流氓!没有全能的架构,只要适合的架构。 下面我们来看看那些场景适合 RPC,而那些场景适合 MQ。 RPC 场景 使用 RPC 的场景一般都是上有服务需要实时依赖下游服务的返回。 我们以一个登录服务为例,架构图如下: 用户发起的登录请求首先由对外的 WEB 服务接受,然后 WEB 服务服务调用用户服务查询用户信息,然后比对用户密码。 也就是说我们的 WEB 应用需要实时.... 有更新! 我们真的需要使用 MQ 吗?MQ 使用场景分享 MQ
上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞。 还没来得及了解咋回事来着,这个直升飞机就🔥到的微博热搜。 后面越来越多人开来他们的直升飞机,盘旋在朋友圈上方。于是很多朋友开来他们的坦克,专打直升飞机,一轰一个准。 好了,说回正题! 程序员朋友应该都很熟悉 Unicode (万国码),它几乎包含世界上所有符号,比如组成直升飞机这几个特殊符号对应的 Unicode 码分别为: ps:推荐一个网站,可以根据符号搜对应的 Unicode 码:https://unicode.yunser.com/unicode 除了这些正常字符以外,Unicode 还包含着各种各样的奇葩字符。 奇葩字符 除了正常的我们熟知的文字以外,Unicode 中还有一些奇怪的文字,比如下面这些文字 除了这些奇怪文字以外,Unicode 还有一些奇葩的的符号。 例如下面一整套麻将牌: 一整套的扑克牌: 一整套国际象棋: 除了这些,通过组合符合,我们还可以造出各种各样的颜文字(๑•̀ㅂ•́)و✧、 另外 Unicode 还收录着我们常用的 Emoji 。 除.... 有更新! 没想到 Unicode 字符还能这样玩? 每日一技
前言 公司有一个 Web 管理系统,使用 Tomcat 进行部署。由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作。 起初这个系统的用的人也不多,为了节省资源,这个系统仅仅只是单机部署。后来随着用的人越来越多,单机已经有点扛不住了,于是我决定再部署了一台机器。 这时后端系统有两台服务,于是我们使用 Nginx 作为反向代理,整体架构图如下: 这个架构图想必大家应该比较熟悉,现在主流的 Web 系统应该都是这么部署。 经过一些调试之后,在一个夜深人静的晚上,将这套系统部署到了生产。本以为没有什么事的,很稳的交给测试小姐姐开始测试。 这一测,出了大问题!测试小姐姐反馈,登录过后,没过一会又需要登录,操作好几次都是这样。 检查了一下,系统应用,配置什么也没问题,那到底哪里出了问题? 这个时候组长刚准备下班,看到我们这里有问题,于是过来了看了一下。简单了解的一下基本情况,很快就找到了问题的原因,然后在 Nginx 端修改了下配置,重启解决了问题。 先点后赞,养成习惯~关注公号『程序通事』,快来呀!! 分布式一致性 Session 解决完问题,组长坐下解释了问题原因:分布.... 一口气说出 4 种分布式一致性 Session 实现方式,面试杠杠的~ 分布式
每周趣图 产品经理设计体验/用户实际体验 本周就不写技术分析文章了,分享几个珍藏已久的 IDEA 的「骚技巧」,助你快速完成代码。 还等什么?赶紧上车吧...... 前进/后退 我们使用浏览器的过程,可以点击后退查看之前的浏览记录。在 IDEA 也有同样的功能,当我们编辑代码时,点击查看了调用类实现逻辑,然后可以使用后退快捷键,快速回到刚才待编辑的代码处。 有后退,当然也有前进啦~ 前进/后退快捷键如下: Windows:Ctrl + Alt + Left/Right(方向键) Mac: ⌘ + ⌥ + ← / →(方向键) 示意图如下: 查看历史记录 还是以浏览器为例,当我们已经点击很多网页,这时想查看之前看过一个网页,使用后退就会很费劲,需要一个个回退过去查找。这种情况下,直接从历史记录查看将会变得很高效。 同样的,IDEA 也提供类似的功能查看历史文件,并且在弹出窗口内可以使用关键键快速查找。 快捷键如下: Windows:ctrl + E Mac:⌘ +E 另外 IDEA 中还有可以查看最近修改代码的位置,直接点击快速跳转。 快捷键如下: Windows:ctr.... 6 个珍藏已久 IDEA 小技巧,这一波全部分享给你! 每日一技
前言 这周收到外部合作同事推送的一篇文章,【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)通告。 按照文章披露的漏洞影响范围,可以说是当前所有的 Dubbo 的版本都有这个问题。 无独有偶,这周在 Github 自己的仓库上推送几行改动,不一会就收到 Github 安全提示,警告当前项目存在安全漏洞CVE-2018-10237。 可以看到这两个漏洞都是利用反序列化进行执行恶意代码,可能很多同学跟我当初一样,看到这个一脸懵逼。好端端的反序列化,怎么就能被恶意利用,用来执行的恶意代码? 这篇文章我们就来聊聊反序列化漏洞,了解一下黑客是如何利用这个漏洞进行攻击。 反序列化漏洞 在了解反序列化漏洞之前,首先我们学习一下两个基础知识。 Java 运行外部命令 Java 中有一个类 Runtime,我们可以使用这个类执行执行一些外部命令。 下面例子中我们使用 Runtime 运行打开系统的计算器软件。 // 仅适用macos Runtime.getRuntime().exec("open -a.... Dubbo 高危漏洞!原来都是反序列化惹得祸 Dubbo