自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周壮的博客

专注技术,死磕Java,架构提升

  • 博客(330)
  • 收藏
  • 关注

原创 AI编程“智能体”时代,程序员如何提效

2026年,AI编程提效的核心不再是找到一个“万能”工具,而是升级你的工作流和思维方式。从**“指令者”转变为“架构师”和“审查者”,利用AI智能体的自主性,通过规划、拆解、自动化**等方式,将精力集中在更高层次的架构设计、需求分析和代码审查上。如果想了解特定工具或场景的更多细节,可以随时再问我。

2026-06-29 20:28:08 354

原创 12 配置中心:基于 Nacos 集中管理应用配置

本文介绍了在微服务架构中使用Nacos作为配置中心的必要性及实现方法。主要内容包括:1)微服务架构必须引入配置中心以解决配置文件分散管理、版本控制及多环境切换问题;2)详细讲解Nacos配置中心的部署步骤,包括数据库配置和服务接入流程;3)分享生产环境中的实用技巧,如配置热加载、环境切换和基础配置管理等。通过Nacos集中管理配置,可以显著提升运维效率和系统可靠性,为后续Sentinel集群保护功能的实现奠定基础。

2026-02-24 22:00:00 889

原创 11 限流与熔断:Sentinel 在项目中的最佳实践

本文深入讲解了Sentinel的底层原理与配置方法。首先分析了SentinelDashboard与SentinelCore的通信机制,包括心跳连接、规则推送和请求拦截流程。其次详细介绍了限流策略,重点阐述了滑动窗口算法原理,以及直接、关联、链路三种流控模式和快速失败、预热、排队三种流控效果的配置方式。最后讲解了熔断机制,涵盖慢调用比例、异常比例和异常数三种熔断模式的设置方法。全文通过具体示例和图示,系统性地展示了Sentinel在微服务保护中的核心功能实现与配置技巧,为处理高并发场景提供了技术方案。

2026-02-24 17:32:05 1046

原创 10 系统保护:微服务架构雪崩效应与服务限流

本文介绍了微服务架构中雪崩效应的产生原因及防护措施。通过一个电商系统在"黑五"大促期间因流量激增导致系统崩溃的真实案例,分析了雪崩效应的级联破坏性。文章提出了提高可用性、性能优化、限流保护、服务降级等解决方案,并重点讲解了Alibaba Sentinel这一流量控制组件。详细演示了Sentinel Dashboard的部署配置过程,以及如何在微服务中实现接口限流规则,包括1QPS限流设置和降级效果验证。最后预告将继续深入讲解Sentinel的高级特性和执行原理。

2026-02-11 14:15:58 1059

原创 09 服务门户:Spring Cloud Gateway 微服务的大门

本文介绍了API网关在微服务架构中的核心作用与实现方案。首先阐述了直接暴露微服务接口的三大问题(安全风险、接入困难、统一处理难),引出API网关作为统一入口的必要性,其核心功能包括统一鉴权、协议转换、流量控制等。随后对比了主流API网关产品(OpenResty、Zuul、SpringCloudGateway),重点讲解SpringCloudGateway的配置方法,包括自动路由、谓词系统(Path/Header/Method等)和过滤器链(AddHeader/Retry等)。最后深入剖析网关执行原理,通过自

2026-02-11 09:52:10 820

原创 08 RPC 消息:Dubbo 与 Nacos 体系如何协同作业

本文介绍了微服务通信中RPC与RESTful的区别,重点讲解了阿里巴巴开源的Dubbo框架及其与SpringCloudAlibaba的整合。主要内容包括:1)对比RESTful和RPC的特点,说明RPC在低延时场景的优势;2)解析Dubbo架构的五大角色及其核心功能;3)通过订单与库存服务案例,详细演示了Dubbo与Nacos的协同开发过程,包括Provider服务提供者和Consumer消费者的具体实现。文章指出Dubbo通过二进制通信和智能负载均衡等特性,为微服务架构提供了高效的RPC通信方案。

2026-02-10 18:53:16 739

原创 07 REST消息通信:如何使用 OpenFeign 简化服务间通信

本文介绍了OpenFeign在微服务通信中的应用。首先分析了RestTemplate的局限性,引出OpenFeign作为更高层次的封装方案。OpenFeign基于Netflix Feign,通过"接口+注解"方式简化服务间通信,内置Ribbon实现负载均衡。文中通过电商库存检查案例详细演示了OpenFeign的使用流程:创建服务提供者、配置消费者端FeignClient接口、注入调用等。最后提出了生产环境下的优化配置建议,包括调整负载均衡策略、开启数据压缩功能以及替换默认通信组件等。Op

2026-02-10 18:43:33 987

原创 06 负载均衡:Ribbon 如何保证微服务的高可用

本文介绍了使用Ribbon实现微服务间负载均衡通信的方法。主要内容包括:1)Ribbon作为客户端负载均衡器的工作原理,通过从Nacos获取服务实例列表并按策略选择节点;2)两种实现方式:代码模式(手动获取实例信息)和注解模式(通过@LoadBalanced自动处理);3)Ribbon提供的多种负载均衡策略(如轮询、随机、重试等)及配置方法。通过RestTemplate与Ribbon的配合,可以简化微服务间的高可用通信,提升系统性能。

2026-01-23 19:05:21 701

原创 05 高可用保证:Nacos 如何有效构建注册中心集群

本文详细介绍了Nacos集群在生产环境中的部署与应用。首先阐述了集群架构设计要点,包括域名访问、端口配置、MySQL数据持久化和VIP解耦等关键环节。然后逐步演示了Nacos集群的部署过程:从环境准备、安装配置到数据库设置和节点启动,并展示了微服务接入集群的方法。最后深入解析了Nacos基于Raft算法的Leader选举机制和节点间数据同步原理,确保集群高可用性和数据一致性。通过完整的三节点集群部署实践,帮助读者掌握Nacos集群的核心技术与实现细节。

2026-01-20 23:15:14 908

原创 03 顶层设计:微服务生态与 Spring Cloud Alibaba

本文介绍了微服务架构的核心组件及Java实现方案。首先阐述了微服务架构必须解决的8个核心问题,包括服务发现、负载均衡、通信机制等,并对应介绍了注册中心、API网关、配置中心等标准组件。其次分析了SpringCloud作为Java主流微服务解决方案,整合了Eureka等开源产品。最后重点推荐了SpringCloudAlibaba,指出其在兼容SpringCloud基础上,通过Nacos、Sentinel等组件简化架构复杂度,并整合阿里云提供更多特性。文章强调微服务架构需要具体技术支撑,而SpringCloud

2026-01-18 22:37:26 659

原创 04 服务治理:Nacos 如何实现微服务服务治理

本文介绍了Nacos注册中心在微服务架构中的核心作用及其实现方式。主要内容包括:1)Nacos的特性与功能,作为服务发现、配置管理和DNS服务的统一平台;2)Nacos在Linux环境下的单机部署流程,包括JDK配置和防火墙设置;3)微服务接入Nacos的详细步骤,通过SpringBoot工程向导和配置实现服务注册;4)Nacos的心跳机制原理,包括5秒一次的心跳检测和20秒的健康检查机制。最后提出了关于Nacos单点部署可用性问题的思考,为后续集群方案的讲解做铺垫。

2026-01-18 22:36:44 925

原创 02 经验教训:微服务设计时的五条宝贵经验

本文探讨了微服务架构带来的新挑战及应对策略。主要分析了网络通信、性能延迟、运维成本、组织架构调整和集成测试五大问题,并提出五点最佳实践:合理划分服务边界、明确服务使命、独立数据存储、采用聚合器通信模式、避免过度微服务化。文章指出微服务适合大型新系统、敏捷小团队和历史遗留系统重构,但对小型项目和高实时性系统则不适用。最后强调微服务需要结合具体技术框架实施,为后续讲解SpringCloud生态做铺垫。

2026-01-18 22:24:18 851

原创 01 一探究竟:从架构的演变看微服务化架构

摘要:本文介绍了微服务架构的概念及其发展历程。微服务架构将应用程序拆分为独立运行的小型服务,采用轻量级通信机制,支持独立部署和不同技术栈。文章分析了传统分布式架构存在的问题(如通信困难、系统耦合度高、重复建设等),并通过普惠金融案例展示了微服务如何通过统一通信标准、注册中心、链路跟踪等技术解决这些问题。微服务的三大特点是:基于业务的小型服务、统一通信协议、独立运行维护。最后提出思考题,引导读者思考微服务可能带来的新问题。

2026-01-18 22:07:50 810

原创 00 告别盲目刷题,击破算法面试

《数据结构与算法面试宝典》专栏作者大壮分享其从技术架构师到"面霸"的成长历程。基于多年大厂面试经验,该课程提炼出300+高频面试题,独创"一解多题"与"一题多解"方法论,覆盖栈、队列、二叉树等数据结构及动态规划等算法核心考点。课程提供Java/C++/Python三语实现、思维导图及动画图解,帮助求职者在一个月内系统备战算法面试,掌握大厂P7+级别要求的解题能力。作者特别强调算法能力是职业发展的关键门槛,并分享独家代码模板和面试技巧,助力程序员突破

2025-07-25 13:35:28 1044

原创 20 结束语程序员的道、术、势

课程总结与职场发展建议 课程回顾:历时两个月的技术课程圆满结束,感谢学员们的积极参与和反馈。重点强调技术学习应注重思维过程而非具体形式,培养独立思考与转化能力。 职业发展"道术势": 术:专业技术能力 道:分析思考能力 势:把握趋势的能力 职场建议: 对资深人员:培养敏感思考、精准表达、超预期交付、提升认知层次 对新人:做好职业规划、自我定位、归纳总结、重视时间管理 结语:技术人员应经历"做下不做上→做下也做上→做上不做下"的职业进阶过程,不断提升综合能力。

2025-07-01 20:15:00 783

原创 19 互联网架构设计面试的知识体系

摘要:文章剖析了研发工程师成长为架构师的职业路径,指出多数人缺乏系统方法。提出架构师能力模型包括基础技术架构、业务架构和开发技能三大维度,强调需要全面把控系统开发各环节。以互联网分布式系统为例,详细拆解了存储、计算、输入输出、控制器四大知识体系,包括数据分片、一致性协议、分布式计算框架、网络通信等核心技术。最后建议从熟悉领域出发构建知识网络,培养技术判断力,逐步实现从技术思维到全局视角的转变。

2025-07-01 08:15:00 964

原创 18 从架构师角度怎么应对千万级流量的问题?

技术行业发展到今天,很多技术上的问题都不存在挑战了,所谓的高性能架构设计,也仅仅变成了一种标准化的应对流程。你要做的就是将业务问题,抽象成一个技术问题,比如具体到数据库设计、缓存设计、队列设计、线程设计等技术细节,然后不管你通过什么渠道,Google 也好,问同事也好,或者购买付费知识也好,都能找到技术的应对方案。

2025-06-30 12:30:00 900

原创 17 如何证明你做的系统是高性能的?

对于怎么评估系统高性能,你可以从系统的吞吐量、延迟以及 TP 99,这三个指标出发回答面试官提出的问题。而对于高级研发工程师,不仅仅要了解后端的性能指标,还有对全链路的性能指标有所了解。另外,在实际生产环境,还会涉及 CDN 加速、ISP 路由策略、边缘计算等一系列网络工程层面的性能优化指标,这里展开的内容相对较多,你可以自己课下学习。总的来说,你要在大脑里先建立起整个请求的链路蓝图,熟悉每个环节的性能损耗。今天的作业是:对于我们常用的系统或中间件,你能说出它们的性能指标吗?

2025-06-30 08:15:00 875

原创 16 互联网系统容错、降级等高可用问题

这一讲我带你了解了雪崩产生的原因,服务熔断的实现方式以及服务降级的策略,今天你需要了解的重点是:服务熔断其实是一个有限状态机,实现的关键是三种状态之间的转换过程。降级就是在做取舍(取舍服务、取舍功能),本质上是为了解决资源不足和访问量过大的问题。实现上可以降低系统一致性、裁剪非核心服务,以及简化产品功能。总之,服务的熔断和降级是互联网保证系统稳定性和可用性的重要手段,在你的架构设计中,如果涉及系统与第三方服务调用的情况下,都需要考虑增加服务熔断和降级方案。

2025-06-29 10:54:29 777

原创 15 如何证明你做的系统是高可用的?

我们来回顾一下今天的重点内容。为了在面试中更好地回答怎么评估系统高可用,我们讲解了 SLA 的概念以及评估方法,并得出“以停机时间影响的系统请求量作为评估指标”比较科学。为了确保线上服务的稳定运行,在设计监控系统时,要考虑三个核心点,基础设施监控、系统应用监控,以及存储服务监控。另外,我强调了故障处理是研发工程师在进阶过程中必须经历的,而故障处理能力也是面试官最为看重的能力之一,所以对于怎么处理各类故障,你要形成一套体系化的知识框架。为了方便你的记忆,我将今天的内容总结如下。

2025-06-29 10:49:33 1125

原创 14 缓存穿透、缓存击穿、缓存雪崩问题?

本文探讨了Redis缓存设计中的三大核心问题及解决方案:1. 缓存穿透采用预设空值策略避免恶意查询穿透到数据库;2. 缓存击穿通过Redis的setNX方法实现互斥锁控制并发访问;3. 缓存雪崩通过随机打散过期时间或设置缓存永不过期来预防。文章还提出热点数据动态缓存策略(基于访问时间排序)和缓存业务解耦方案(MySQL Binlog+Canal+MQ架构)。最后强调需注意缓存一致性、容量限制等潜在问题,并布置了Redis计数器实现的思考题。这些方案有效解决了高并发场景下的缓存性能瓶颈问题。

2025-06-27 08:03:14 1191

原创 13 你要掌握 Redis 哪些原理?

Redis作为主流缓存中间件,其原理考察常聚焦三大核心:线程模型、持久化和高可用。线程模型方面,需区分不同版本特性(4.0前纯单线程、4.0引入异步删除、6.0新增I/O多线程);持久化涵盖AOF写后日志、RDB快照及混合模式优缺点;高可用方案包括主从复制、哨兵模式和Cluster集群的哈希槽分片机制。回答时需体现版本演进认知(如6.0多线程网络处理)、技术权衡(如AOF/RDB的可靠性/性能取舍)以及集群数据分布原理。掌握这些要点能系统展示对Redis深度理解。

2025-06-27 07:59:59 837

原创 12 MySQL 如何优化数据存储方案?

本文主要探讨高并发场景下数据库分库分表的优化方案。当主从分离无法解决写入压力时,可采用垂直拆分(按业务分库)、水平拆分(按数据量分表)或两者结合的方案。垂直拆分关注业务隔离,水平拆分侧重数据扩展,其中Hash分片均匀但缺乏业务关联,Range分片可预估业务但易产生热点。解决方案包括硬件升级和引入分片元数据表。分库分表后需解决跨库查询问题,可通过ES、HDFS等存储聚合数据。文章还提及NewSQL的发展趋势,建议在面试中展现相关技术视野。最后留下思考题:如何处理商品分片后的关联表问题。

2025-06-25 22:56:59 1277

原创 11 MySQL 如何优化数据查询方案?

本文探讨了在读多写少的电商场景下如何优化MySQL数据查询性能。文章指出,单纯依赖Redis缓存无法有效解决订单中心等高并发查询问题,提出"读写分离"是提升系统并发的关键方案。详细解析了MySQL主从复制原理(基于binlog的三阶段同步过程)及三种复制模式(同步/异步/半同步),并针对主从延迟问题给出数据冗余、缓存机制、直查主库等解决方案。文章还讨论了工程实现层面的数据源管理方案,并升华到复制状态机原理的技术抽象层面。最后强调初中级工程师需掌握主从复制原理及解决方案,高级工程师还应具备

2025-06-25 22:52:47 919

原创 10 MySQL 的事务隔离级别和锁的机制?

本文系统讲解了MySQL事务隔离级别与锁机制的核心知识点,主要包括:1)四种事务隔离级别(读未提交、读已提交、可重复读、串行化)的特性及对应的脏读、不可重复读、幻读问题;2)悲观锁与乐观锁的实现原理;3)重点剖析了脏读、不可重复读和幻读三种现象的产生机制及解决方案;4)深入解析死锁产生的四个必要条件及预防策略。文章强调这些内容是MySQL面试的高频考点,建议开发者结合实践理解事务隔离、锁机制等底层原理,并补充数据库设计、SQL优化等知识体系。

2025-06-24 13:16:26 974

原创 09 MySQL 的索引原理与优化问题?

本文介绍了MySQL索引原理与优化方法。核心内容包括:B+Tree索引的实现原理,通过主键和非主键查询的具体过程;对比分析了B+Tree相对于B树、二叉树和Hash表的优势;讲解了执行计划的查看方法和关键参数解释;列举了索引失效的常见情况;提出了前缀索引、覆盖索引、联合索引等优化策略。文章强调理解索引原理是SQL优化的基础,同时指出索引也存在写入延迟和空间消耗等问题,建议在实际工作中结合执行计划分析索引使用情况,合理运用各种优化方法。

2025-06-24 08:16:10 775

原创 08 MQ:消息队列的丢失、重复与积压问题

本文探讨MQ消息中间件的高频面试问题"如何确保消息100%不丢失"。文章以京东系统为例,分析了消息从生产、存储到消费的三个环节可能丢失消息的场景及解决方案:生产阶段需正确处理响应,存储阶段依靠MQ副本机制,消费阶段延迟确认。同时提出通过全局唯一ID或版本号实现消息检测,并强调幂等性设计对解决重复消费的重要性。针对消息积压问题,建议临时扩容、降级非核心业务及优化消费逻辑。最后指出面试中展现系统性思考过程比直接给出答案更重要,并建议基础架构岗位需深入掌握消息中间件的其他知识体系。

2025-06-23 08:19:56 1029

原创 07 RPC:在面试中展现出“造轮子”的能力

文章摘要: 本文探讨了RPC技术在微服务架构中的应用及面试考察要点。首先指出RPC是微服务通信的基础,面试官往往从"实践+原理"两个维度考察候选人。实践层面以电商网关超时设置为例,强调需结合TP99耗时、调用方式、服务重要性等综合分析;原理层面重点讲解RPC通信流程中的序列化选型(如Hessian、Protobuf)和网络模型优化(BIO/NIO对比),指出NIO多路复用模型更适合高并发场景。最后建议通过阅读Dubbo等源码深入理解RPC实现,并提示高级功能(负载均衡、熔断等)可作为面试

2025-06-23 08:16:20 1035

原创 06 分布式系统中锁的实现原理

本文介绍了分布式锁在分布式系统中的应用及其实现方式。分布式锁主要用于协调多系统对共享资源的同步访问,解决库存超售等并发问题。文章分析了三种实现方案:基于MySQL的关系型数据库(存在性能瓶颈和死锁问题)、基于Redis的分布式缓存(高效但需考虑超时设置和集群可靠性),以及Redlock算法解决Redis集群问题。文章强调设计分布式锁需满足互斥性、高可用、锁释放和可重入等原则,并指出面试中应注重原理理解和业务场景适配。最后留下思考题:基于Zookeeper的实现方案如何满足这些设计原则。

2025-06-20 19:15:00 1098

原创 05 海量并发场景下分布式事务一致性问题

本文深入探讨分布式系统中的事务一致性问题,以电商下单场景为例,分析主流解决方案。重点对比两阶段提交(2PC)与基于MQ的可靠消息投递两种方案:2PC通过协调者和参与者两阶段操作实现强一致性,但存在死锁、性能和数据不一致风险;MQ方案通过消息持久化、手动应答和双向确认机制实现最终一致性,更适合高并发场景。文章强调面试时应优先讲解MQ方案的可落地性,同时掌握2PC原理以展示技术深度,指出实际业务中需根据场景权衡一致性与成本。思考题引导读者对比TCC与2PC的差异。(149字)

2025-06-20 08:02:28 1089

原创 04 亿级商品深度回答分布式系统的原理性

本文以电商海量商品存储为案例,深入剖析分布式系统设计的核心问题。首先对比Hash分片与一致性Hash分片的优缺点,指出前者简单但扩展性差,后者通过虚拟节点减少数据迁移。接着探讨热点数据问题,提出Range分片方案及元数据服务集群的实现思路。然后分析数据一致性问题,介绍Raft、Paxos等强一致性算法和Gossip最终一致性协议的应用场景。文章强调分布式设计中需要在数据分片、副本复制和一致性算法之间进行权衡,并指出这些知识点在技术面试中的重要性。通过层层递进的案例解析,展现了分布式系统从基础架构到高级算法的

2025-06-19 08:21:42 1115

原创 03 面试官考察与 CAP 有关的分布式理论

本文探讨了分布式系统面试中CAP理论的应用技巧。首先指出CAP理论是分布式设计的核心,面试中会考察不同岗位候选者的理解深度。文章详细剖析了CAP原理,强调实际场景中的权衡取舍,并介绍了PACELC和BASE等优化理论。针对初、中、高级工程师分别给出了回答建议:初级应展示理论到实践的闭环思维,高级则需要构建知识体系和技术判断力。最后以Redis分布式锁为例,演示了如何运用CAP理论分析实际问题,并强调了技术深度与广度的重要性。文中还设置了电商高可用设计的思考题,引导读者将理论应用于实践。

2025-06-19 08:16:53 1131

原创 02 用架构师视角回答架构设计方案

本文阐述了用架构师思维应对技术面试的核心方法。当被问及系统设计问题时,不应陷入技术细节,而应从四个层面结构化回答:分析复杂度来源(业务耦合、高可用等);提出多套解决方案(MQ、Redis等);建立评估标准(功能性/非功能性需求);阐述技术实现原理。文章通过电商评论系统改造案例,演示如何运用;空间全局(系统边界)和时间全局(发展周期)的架构思维,强调知道做什么比怎么做更重要的核心理念。

2025-06-18 08:13:00 959

原创 01 研发工程师提升面试竞争力的三个技术认知

本文探讨了研发工程师提升面试竞争力的三个关键技术认知:首先,架构设计认知需要从点到面系统思考,理解拆分背后的提效本质;其次,分析问题认知要聚焦业务阶段主要矛盾,而非单纯追求高性能;最后,能力边界认知强调拓展驾驭系统的范围,从模块级迈向领域级思考。文章指出,真正的技术竞争力在于解决复杂业务问题的能力,而非单纯掌握技术工具,建议工程师培养归纳总结习惯,主动突破舒适区,才能向更高职级发展。

2025-06-18 07:50:53 961

原创 00 中高级研发面试逃不开架构设计

我将为你深入剖析系统处理百万级并发时面临的技术挑战与优化策略,揭示大厂面试中高频出现的高性能系统设计问题。内容包括:如何评估系统的高可用性指标?并通过电商平台实战案例,拆解架构设计中的常见考点。

2025-06-17 22:39:40 852

原创 开源的代码搜索工具 Kooder

一个企业里往往有大量的项目,每个项目都包含很多的代码,这些代码都是企业的核心资产。经过日积月累,不同的开发人员不断的修改完善,企业中很难有人能掌握所有的代码。于是企业全库的代码搜索就变得非常重要。例如我们可以搜索公司代码是否包含某类敏感信息,是否使用了某些不安全的方法等等。今天和大家分享一个开源的代码搜索工具 Kooder。

2025-01-23 10:33:14 1457 1

原创 结束语 你的 Go 语言成长之路

具备自我驱动力,以及学习能力的人,在职场中的竞争力都不会太差。希望这个专栏可以很好地帮到你,让你学到 Go 语言的知识,让你在职场中更具备竞争力。写到这里就真的要说再见了,如果你想和我有更多的交流,可以关注我的公众号「飞雪无情」。最后,我将邀请你为本专栏进行结课评价,你的每一个反馈,我和拉勾教育都会关注且认真对待。希望你能为自己的学习之旅画上一个完整的句号,点击链接,参与课程评价,编辑同学会随机抽 5 位同学送精美礼品。

2024-12-08 15:07:26 1312

原创 22 网络编程:Go 语言如何通过 RPC 实现跨平台服务

RPC,也就是远程过程调用,是分布式系统中不同节点调用的方式(进程间通信),属于 C/S 模式。RPC 由客户端发起,调用服务端的方法进行通信,然后服务端把结果返回给客户端。RPC的核心有两个:通信协议和序列化。在 HTTP 2 之前,一般采用自定义 TCP 协议的方式进行通信,HTTP 2 出来后,也有采用该协议的,比如流行的gRPC。序列化和反序列化是一种把传输内容编码和解码的方式,常见的编解码方式有 JSON、Protobuf 等。

2024-12-08 15:06:36 1292

原创 21 网络编程:Go 语言如何玩转 RESTful API 服务

RESTful API 是一套规范,它可以规范我们如何对服务器上的资源进行操作。在了解 RESTful API 之前,我先为你介绍下 HTTP Method,因为 RESTful API 和它是密不可分的。说起 HTTP Method,最常见的就是POST和GET,其实最早在 HTTP 0.9 版本中,只有一个GET方法,该方法是一个幂等方法,用于获取服务器上的资源,也就是我们在浏览器中直接输入网址回车请求的方法。

2024-12-08 15:05:49 921

原创 20 协作开发:模块化管理为什么能够提升研发效能

在业务非常简单的时候,你甚至可以把代码写到一个 Go 文件中。但随着业务逐渐复杂,你会发现,如果代码都放在一个 Go 文件中,会变得难以维护,这时候你就需要抽取代码,把相同业务的代码放在一个目录中。在 Go 语言中,这个目录叫作包。在 Go 语言中,一个包是通过package 关键字定义的,最常见的就是main 包,它的定义如下所示:此外,前面章节演示示例经常使用到的 fmt 包,也是通过 package 关键字声明的。一个包就是一个独立的空间,你可以在这个包里定义函数、结构体等。

2024-12-08 15:02:30 1127

02 数据加工层 如何搭建用户与内容的标准规范体系

数据加工层 如何搭建用户与内容的标准规范体系近年来,互联网上充斥着纷繁芜杂的信息,比如文字、图像、声音、视频等,这些信息都是非结构化,而用户在浏览这些信息时会同时做出各种各样的行为,因此,如果想要实现信息与用户之间的高效连接,我们必须建立标准的用户行为规范和内容规范,这也是在数据加工阶段的核心工作内容。 在个性化流量分发体系中,数据加工阶段主要包含用户标签体系和物品标签体系建设工作,即结构化标准体系建设。在这个过程中,我们需要将用户基础数据、物品基础数据、采集的行为数据等进行清洗、抽取、关联等,最终形成用户标签和物品标签。 其中,用户标签是用户的结构化基础,物品标签是物品的结构化基础,为后续用户画像和物品画像的产出提供必要的材料和关联基础。推荐算法依据结构化数据对用户和物品进行理解,从而提高流量分发的精度。

2024-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除