系统设计
文章平均质量分 75
bruce128
https://github.com/bruce256?tab=repositories
展开
-
全链路参数透传
背景现在的系统大多是基于SOA的分布式应用。跨服务调用的时候,存在线程上线文里的重要信息如traceId,租户id无法传递给下一个应用。要解决的问题内部系统通过RocketMQ交互时,traceId如何透传到消息消费应用内部系统通过Dubbo调用时, traceId如何透传到服务提供方解决方案1 rocketMQ异步透传解决方案发消息时,通过切面拦截 DefaultMQProducer.send 方法,将traceId从threadLocal写入Message的properties里面原创 2022-03-28 10:40:12 · 3239 阅读 · 0 评论 -
高性能Server的基石:reactor反应堆模式
业务开发同学只关心业务处理流程。但是我们开发的程序都是运行服务端server上,服务端server接收到IO请求后,是如何处理请求并最终进入业务流程的呢?这里不得不提到reactor反应堆模型。nginx tomcat redis nodejs dubbo等软件的网络处理模型都是用的reactor反应堆模型。前置知识。原创 2024-02-23 15:24:32 · 1328 阅读 · 0 评论 -
系统高可用建设
以前面试遇到的一个开放问题,当时回答的很片面。把工作十一年的经验进行汇总,系统性的梳理了一下。从事故发生前,事故发生时,事故发生后的角度进行梳理。高可用,就意味着事故恢复的时间要足够的短。原创 2023-09-27 13:55:26 · 113 阅读 · 0 评论 -
客户端升级系统升级策略
我们项目组的客户端多大20余种,两年前为这些客户端写了一个升级模块,但是不够强悍。去年年中重新做了一个灰度升级系统,专门为客户端升级服务。现在分享下这个系统的升级策略。 发布版 所有版本号比发布版低的客户端都要升级到发布版。升级的形式有两种,登录升级和使用中升级。1.登录升级 登录前提示升级,一般是比较重要的升级方式才会配成登录升级。用户当然可以取原创 2015-07-28 19:32:46 · 4231 阅读 · 0 评论 -
管理系统权限模块技术方案
一个管理系统,有各种不同的功能,不是所有的功能都开放给任何用户,不同的用户会有不同功能的权限。权限模块需要做到两点,1.记录用户能使用的功能集合 2.管理界面只渲染用户能使用的功能。 分享一个实现方案。 每个功能入口设置一个权限码,整数的。借助自定义的注解可以很好的标注入口方法的权限码。数据库里存储用户的所有功能的权限。mysql里借助bit数组实现。0表示没这个权限,1表示有原创 2015-09-18 10:58:18 · 2787 阅读 · 0 评论 -
编码规范经验谈
接手3.0的项目接近两个Q,在阅读了这些代码的基础上开了一些新功能。对我们项目组的核心工程的代码有些批判的想法,现在拿来跟大家分享一下。计算机巨匠 Donald Kunth(《计算机程序设计的艺术》系列作者)有一句名言:程序是写给人看的,只是偶尔让机器执行一下。言辞颇为偏激,但是至少强调了一点,代码的可读性是十分重要的。一个大型的项目,一般会有10-20次的产品迭代,就我们IM这个可以做到原创 2016-01-25 10:53:19 · 1649 阅读 · 0 评论 -
业务架构浅谈
一、序章 一般的工程师接触到的是 应用架构 ,传统的MVC分层架构、事件驱动架构等等。第一次接触业务架构这个概念是在来到商品发布团队之后。商品发布是一个业务属性很重的系统,承载了淘宝、天猫、盒马、魅力惠、汽车、虚拟、SCM自营、苹果、村淘、公益、教育等诸多业务(业务多的围起来可以绕地球一圈)的商品发布功能。头半年对“业务架构”还是很懵逼的,随着慢慢的熟悉业务,研究框架代码,才对我们的业务架构.........原创 2022-07-13 16:44:47 · 5122 阅读 · 6 评论