学习 Java 8年了,我一直坚定不移地“抄”代码:“抄”同事“抄”框架“抄”网友有黑子会问,你天天自吹技术专家了,天天就知道抄?对此,我只想说,是的,咋滴?初级程序员和高级程序员最大的区别在哪里?:1 为啥就知道抄?“抄”,听起来让人不舒服?技术人嘛,咋能叫抄呢,应该叫:造轮子。不过似乎也被诟病,大佬们肯定劝你:年轻人不要重复造轮子,你的一切发明不过是发现!首先,造轮子是你面前已经有一个轮子了。
Distributed Caching:如果每次我在软件系统的缓存实现中遇到一个错误都能赚到一美元的话……我大概可以支付Redis Enterprise一年的企业订阅费用了。缓存,似乎是这样一种东西,你几乎能把它做对,但永远不会完全对。这是有充分理由的。毕竟——缓存(或者更确切地说是缓存失效)是计算机科学中被认为最难解决的两个基础性问题之一。当然,另一个是命名变量。无论是开玩笑还是认真——缓存确实
系统复杂性根源于隐晦(难理解),耦合(难改动)和变化(难扩展),DDD正是应对系统复杂性的重要方法。本文针对B端营销系统设计中的复杂性,从战略设计,战术设计到代码架构,详细介绍DDD在各个阶段的实践。3 战略设计实践4 战术设计实践5 代码架构实践6 总结7 参考资料1 背景通过营销活动实现客户/用户拉新、留存和促活。为实现商户增长和留存,构建营销系统支撑商户的线上营销运营。在系统建设过程中,面临
很多人喜欢在阿里云上购买域名,因为简单方便,但也有不太好的,如阿里云提供的域名免费SSL证书只有一年,到期后要重新申请。而CF上解析的域名能够提供终身免费的域名SSL证书,不担心后续域名访问不安全。如想申请永久免费SSL证书,就可将域名解析到CF上,解析完之后如果遇到待处理的名称服务器更新,就需要把阿里云的DNS修改为CF的(授权给CF)。新增需要解析的域名新增一个域名:https://dash.
1 为啥要折腾搭建一个专属图床?技术大佬写博客都用 md 格式,要在多平台发布,图片就得有外链后续如博客迁移,国内博客网站如掘金,简书,语雀等都做了防盗链,图片无法迁移2 为啥选择CloudFlare R2跳转:https://dash.cloudflare.com/有白嫖额度免费 CDN绑定域名不需要备案免费额度足矣支撑个人网站,即使超出,费用也相当便宜。详细定价:https://dash.cl
系统集成即ShardingSphere 和 Spring 框架的集成。ShardingSphere 实现两种系统集成机制:命名空间(namespace)机制,通过扩展 Spring Schema 来实现与 Spring 框架的集成编写自定义 starter 组件完成与 Spring Boot 的集成1 基于命名空间集成 Spring扩展性角度,基于 XML Schema 的扩展机制常见而实用。Sp
0 前言除非你一直生活在岩石下面,否则你可能已经知道微服务是当今流行的架构趋势。与这一趋势一同成长,Segment早期就采用了这种最佳实践,这在某些情况下对我们很有帮助,但正如你将很快了解到的,在其他情况下则并非如此。简单来说,微服务是一种面向服务的软件架构,其中服务器端应用程序通过组合许多单一用途、低开销的网络服务构建。微服务的好处包括:提高模块化减少测试负担改进功能组合环境隔离开发团队自治与之
1 IDEA报错java: JDK isn't specified for module 'XXX'2 原因项目中的.idea文件夹被删掉,导致项目目录出错。3 解决方案3.1 方法1idea中关掉该项目并删除,然后重新import引入该项目,在弹出是否重写.idea选择是,这个错误就解决了3.2 方法2在idea右键项目,选择open module settings,打开modules,选择如图
早期在一些大公司中,如阿里巴巴,技术团队通常分为专门处理业务逻辑的团队和专门管理数据库的团队。当时,前端开发人员主要负责页面切图工作,与设计团队紧密合作,而数据库则依赖于高端的IOE(IBM、Oracle、EMC)解决方案,并有专门的部门负责其维护和优化。随着时间的推移,这些公司逐渐转向使用Linux和MySQL,成立了新的部门专注于数据库优化和二次开发。这些新的团队承担了原本管理IOE解决方案团
团队自主权是指团队在无需获得其他团队批准的情况下进行决策和采取行动的能力。让我们首先看看为什么团队自主权对于快速、频繁和可靠的软件交付很重要。然后看看如何实现它。1 为什么团队自主权很重要?Accelerate 一书的作者发现,它是高性能软件交付的一个重要方面。一个团队应该能够独立于其他团队开发、测试和部署他们的软件(即子域)。因为与其他团队协调是延迟和瓶颈的来源。你需要安排一个会议,确定需要做什
1 支付文档地址:https://pay.weixin.qq.com/wiki/doc/api/micropay_sl.php?chapter=5_4https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml2 Native 支付流程3 支付中心商户订单4 创建商户本地订单前端:export function createTra
1 商品管理系统数据结构1.1 Spu (Standard Product Unit)标准的商品单元,通常指一个商品系列。1.2 Sku (Stock Keeping Unit)库存存储单元,通常指具体的库存商品。Spu包含Sku,Spu表和Sku表是一对多。2 spu的功能根据spu和sku的电商设计模型根据电商网站用户检索和过滤的需求spu的功能查询spu数据列表spu的添加功能3 spu的添
关注我,紧跟本系列专栏文章,咱们下篇再续!作者简介:魔都技术专家,多家大厂后端一线研发经验,在分布式系统、和大数据系统等方面有多年的研究和实践经验,拥有从零到一的大数据平台和基础架构研发经验,对分布式存储、数据平台架构、数据仓库等领域都有丰富实践经验。各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。负责:中央/分销预订系统性能优化活动&优惠券等营销中台建设交
流量高峰时,系统在性能、可用性方面存在不足导致的。那当时你们咋办?1 啥是性能优化应用系统上线那一刻开始,随着用户量的增加、业务功能的持续迭代,系统会面临各种不同程度的挑战,如果不及时采取优化措施,我们会发现诸多问题:系统怎么越来越慢了,流量一高系统就卡顿、甚至宕机等等。性能优化贯穿整个软件生命周期。1.1 性能衡量指标1.1.1 响应时间(RT)所谓响应时间,是指完成某一功能所需要的时间,一般可
SMTP not configured, check your grafana.ini config file's [smtp] section修改配置:#################################### SMTP / Emailing ########################## [smtp] enabled = true #是否允许开启 host = sm
IntelliJ IDEA的调试功能热部署,比如 JRebel线上诊断,比如 Btrace/Greys/Arthas性能分析,比如 Visual VM/JConsole背后隐藏的力量竟然都来自于本文主角!Java Agent是一个 jar 包,只不过这个 jar 包不能独立运行,需要依附到我们的目标 JVM 进程。他其实有两种叫法:代理:比方需要了解目标 JVM 的一些运行指标,就可以通过 Jav
SpringBoot 项目使用 XXL-JOB,执行到XxlJobHelper.log("ip:"+ip+" 执行成功!! "+number );报错:com.xxl.job.core.log.XxlJobFileAppender : No such file or directory找不到文件或文件夹查看 com.xxl.job.core.log.XxlJobFileAppender 得知文件
1 引言以C2C为主的平台,区别于B端用户,C端卖家在发布商品时更倾向 图+描述 的轻发布模式,对补充商品的结构化信息往往执行力和专业程度不高,为商品理解带来困难。为在发布侧获得更多的商品结构化信息,尝试在原有图+文的极简发布模式中加入商品关键属性的补充选项,适当的结构化属性选项并不影响用户发布体验,却能极大提升我们对商品理解的能力。然而1.1 问题设定结构化属性选项时,往往强依赖行业运营经验,缺
0 SharkSpark 的一个组件,用于大规模数据分析的 SQL 查询引擎。Shark 提供了一种基于 SQL 的交互式查询方式,可以让用户轻松地对大规模数据集进行查询和分析。Shark 基于 Hive 项目,使用 Hive 的元数据存储和查询语法,并基于Hive进行了性能优化和扩展。0.1 设计灵感来自 Google 的 Dremel 系统:将数据存储在列式存储引擎使用分布式计算引擎进行查询S
1 Spark 的 local 模式Spark 运行模式之一,用于在本地机器上单机模拟分布式计算的环境。在 local 模式下,Spark 会使用单个 JVM 进程来模拟分布式集群行为,所有 Spark 组件(如 SparkContext、Executor 等)都运行在同一个 JVM 进程中,不涉及集群间通信,适用本地开发、测试和调试。1.1 重要特点和使用场景本地开发和测试:在开发 Spark
1 简介在JDK中是一个预定义注解,指定类的序列化版本号。可用来确保在反序列化时,序列化对象的版本号与反序列化对象的版本匹配,避免因版本不匹配而导致的反序列化失败。2 案列Java中当一个类被序列化,会自动生成一个序列化版本号(serialVersionUID),用于确定该类的序列化版本。反序列化时,JVM会比较序列化对象、反序列化对象的serialVersionUID是否一致,不一致则抛Inva
1 架构演进电商系统架构发展历程,每个阶段的业务状况、技术挑战和技术体系的应对策略。业务验证可行&快速发展 架构: 完成按领域划分的微服拆分、各服务独立承接业务需电商系统统一 架构:完成电商主数据建设 API读写切换,业务逻辑复杂化, 订单量增长迅速多品类、多业务 架构: 平台化架构,服务编排化 业务配置化、数据可视化 流程标准化等1.1 起步阶段业务起步&快速迭代试错架构:
1 系统高可用性保障某支付渠道出现异常的情况时,降级和熔断是我们常用的一种方式,但其对用户的还款体验会有较大的影响,且无法更精准的缩小其影响范围。因此根据支付渠道降级的业务策略来调控某一渠道异常后的路由权重,通过滑动窗口算法来统计和监控渠道某个时间段内异常的比例和绝对数量,达到一定阈值后负反馈给支付路由引擎,在其对支付渠道进行筛选和排序时降低异常渠道的权重,进而调节该异常渠道的使用情况。在降低影响
1 什么是数仓数仓是为企业所有决策制定过程,提供所有系统数据支持的战略集合。通过对数据仓库中数据的分析,可以帮助企业改进业务流程、控制成本、提高产品质量等。数据仓库并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的清洗、转义、分类、重组、合并、拆分、统计等。数仓的:输入系统,埋点产生的用户行为数据、JavaEE 后台产生的业务数据、爬虫数据输出系统,报表系统、用户画像系统
关注我,紧跟本系列专栏文章,咱们下篇再续!作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。负责:中央/分销预订系统性能优化活动&优惠券等营销中台建设交易平台及数据中台等架构和开发设计目前主攻降低软件复杂性设计、构建高可用系统方向。参考:编程严选网智能中台是啥集结了中台产品技术、AI能力
1 问题描述系统从圣诞节晚开始,每晚固定十点多到十一点多时段,大概瘫痪1h,过这时段系统自动恢复。系统瘫痪现象就是,网页和App都打不开,请求超时。系统架构:整个系统托管在公有云,Nginx前置网关承接前端所有请求,后端按业务划微服务。数据保存在MySQL,部分数据Memcached前置缓存。数据并没按微服务最佳实践要求,做严格划分和隔离,而是为方便,存一起。这对一个业务变化极快的创业公司合理。因
关注我,紧跟本系列专栏文章,咱们下篇再续!作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。负责:/分销预订系统性能优化活动&优惠券等营销中台建设交易平台及数据中台等架构和开发设计目前主攻降低软件复杂性设计、构建高可用系统方向。参考:编程严选网0 前言公司发展面临商业环境变化,如流量
关注我,紧跟本系列专栏文章,咱们下篇再续!作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。负责:中央/分销预订系统性能优化活动&优惠券等营销中台建设交易平台及数据中台等架构和开发设计目前主攻降低软件复杂性设计、构建高可用系统方向。参考:编程严选网数据库的历史上,每次存储介质变化都会引发
3.2 系统实现模型设计数据中台数据流转模型:如上图所示按照既定的接口层,应用层,领域层,基础层涉及。逐层封装,各层相互协作,对业务系统提供灵活的数据服务,很好实现了各层的分工,快速响应业务需求。考虑到数据中台主要为业务系统提供数据服务,为保障数据服务的可靠性和及时性,同时兼顾系统的性能和稳定,对数据服务做了冗余和归档服务。冗余的服务同时具备降级的职责,提升服务的 SAL 指标。数据中台服务保障方
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号