自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (2)
  • 收藏
  • 关注

原创 关于“稳定性建设”的一些思考

稳定性建设是一个长期而持续的过程,需要不断改进和完善。只有通过全面的分析、科学的方案和有效的实施,才能确保系统的稳定性和可靠性,为业务发展提供有力保障,道阻且长行则将至。

2024-03-18 23:18:34 1443

原创 技术同学如何做好规划?

几年的工作经历,其中踩了不少坑,经历了不少教训,因此将一些经验和教训进行总结,对一些工作方法论进行沉淀。当然,当前认知有限,难免有“纸上谈兵”之嫌,但是我认为这个思考的过程是必须的,也希望对各位同学有一丝启发和帮助。

2024-02-01 21:00:17 1029

原创 框架为我们做了什么?

Spring Boot 的 web 服务器原理主要基于其嵌入式服务器的概念,这意味着它内嵌了一个 web 服务器,无需部署到外部服务器上。Spring Boot 内嵌了如或等。

2024-06-30 11:12:44 360 1

原创 TCC版的分布式事务

请注意,这个示例非常简化,实际的TCC实现会更加复杂,涉及到网络通信、事务日志、超时处理、幂等性保证等。而且,为了确保幂等性,Try、Confirm和Cancel方法都需要设计为幂等的。此外,实际应用中可能还需要考虑分布式事务的协调者如何选举、故障转移等问题。实现一个分布式事务的TCC模式通常涉及到多个组件和步骤,包括但不限于服务的协调者、参与者以及相应的资源管理。以下是一个简化的Java示例,展示如何使用TCC模式来实现一个分布式事务。等方法来管理账户的资金。

2024-06-27 19:00:01 240

原创 CAP和Base

CAP定理和BASE理论是分布式系统领域中两个重要的概念,它们分别描述了分布式系统设计中的一些基本限制和原则。

2024-06-16 15:08:40 316

原创 Reactor和epoll

在Linux平台上,开发者可以使用epoll来实现Reactor模式中的事件分发器,从而构建高性能的事件驱动网络应用。简而言之,epoll是实现Reactor模式的一种工具或技术,特别是在需要处理大量并发连接的场景中。Reactor模式是一种事件驱动的编程模型,用于处理并发的I/O事件。epoll是实现Reactor模式的一种具体技术手段,特别是在Linux平台上。epoll是Linux内核提供的一种高效的I/O事件通知机制,它是对旧的select和poll系统调用的改进。

2024-06-16 15:05:07 307

原创 做支付系统的一些方向

确保所有支付数据通过安全的通信渠道传输,如使用 HTTPS 替代 HTTP 来防止中间人攻击[:在接收到支付网关的响应时,验证数字签名以确保响应的真实性和完整性,防止中间人攻击和数据篡改[:使用强加密算法来保护存储和传输中的支付数据,确保即使数据被截获也无法被未授权者读取[:评估和管理与第三方服务提供商相关的安全风险,确保他们也遵守严格的安全标准[:实施严格的访问控制策略,确保只有授权人员才能访问支付系统和数据[:仅收集和存储完成支付所必需的数据,减少数据泄露的风险[

2024-06-15 19:26:51 216

原创 有状态服务和无状态服务

在设计系统时,选择有状态还是无状态服务取决于业务需求、性能要求、可扩展性和维护成本。无状态服务更容易水平扩展,而有状态服务则需要考虑状态的持久化和同步。如图片、CSS、JavaScript文件的分发,不需要服务端记住任何用户信息。用户登录后,会话信息(如用户ID、权限、购物车内容等)需要在服务端保持状态。提供RESTful API服务,每个请求都是独立的,不需要之前的上下文。用户发起搜索请求,搜索引擎返回结果,不需要记住用户的搜索历史。用户浏览新闻或文章,每次请求都是独立的,不需要服务端状态。

2024-06-15 18:21:49 325

原创 场景设计题

为什么要这样分表?跨库join如何解决?数据量突增怎么解决? 如何解决线上问题?cpu狂飙怎么办?频繁minor gc怎么办?可能造成的原因是什么?如何避免? 数据库 隔离级别,怎么实现的?当前读,快照读?MVCC? 分库分表的设计? 分布式事务出现过不一致吗?为什么?怎么解决?有什么方法避免?怎么监控?监控到怎么处理?什么时候需要人工接入 如何优雅的写代码?什么代码算做优雅?什么代码是规范?你们代码规范是什么样的? 如何进行code review? mysql innodb下,能不能不设置主键?主键

2024-06-15 18:04:35 411

原创 分布式事务之TCC

TCC(Try-Confirm-Cancel)模式是一种常见的分布式事务解决方案,它通过将一个事务拆分为三个阶段来实现分布式事务的一致性。tryconfirmcancel这个案例展示了如何使用TCC模式来管理分布式事务。实际应用中,TCC模式可能需要与数据库事务、消息队列等其他技术结合使用,以确保事务的最终一致性。此外,错误处理、日志记录、事务超时等也是实现分布式事务时需要考虑的因素。

2024-06-15 15:19:45 885

原创 高可用之负载均衡

在此场景下,用户可以依次将 机器 权重比例设置为60,30,20,10,由于静态网站访问大多数是短连接请求,因此可以采用加权轮询的均衡方式,让 SLB 按 机器 的性能比例分配请求。在此场景下,推荐用户使用最小连接数的均衡方式,这样能快速的提升新加入 机器 的负载,降低另外2台 机器 的压力。:在实际情况中,客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间的延伸,如果采用简单的轮询算法,每一台服务器上的连接进程数目可能会产生极大的不同,这样实际上并没有达到真正的负载均衡。

2024-06-05 13:25:25 820

原创 高可用之限流

限流是服务端架构中常用的一种策略,用于控制访问频率,防止系统过载。

2024-06-04 21:18:50 228

原创 Java语言:高频易错点

基本数据类型和包装数据类型小数表示及运算时间计算字符串比较资源释放循环依赖空指针越界异常处理

2024-06-02 17:00:45 113

原创 Reactor模式

Reactor模式是一种设计模式,主要用于处理服务端的并发请求。它的核心思想是使用一个或多个输入源(如网络连接、文件等)来接收事件,并将这些事件分发给相应的处理器进行处理。Reactor模式通常用于网络服务器,以支持高并发的I/O操作。Reactor:负责监听和分发事件,是事件循环的核心。Handlers:事件处理器,用于处理Reactor分发的事件。Acceptor:用于接受新的连接请求。:用于等待多个I/O事件的发生,通常是一个I/O多路复用器。

2024-06-02 16:27:21 388

原创 服务端定位问题常见思路

查阅官方文档、社区论坛、Stack Overflow等资源,看是否有类似问题的解决方案。- 检查服务器资源使用情况,如CPU、内存、磁盘空间、网络带宽等,确定是否有资源不足的情况。- 利用监控工具检查服务的性能指标,如CPU使用率、内存使用、网络流量、响应时间等。- 确认是否有安全漏洞或攻击导致的问题,检查防火墙、入侵检测系统等安全设备的日志。- 记录问题解决过程,事后进行回顾,以改进问题解决流程和预防类似问题再次发生。- 检查服务和系统的配置文件,确认是否有不当的配置导致问题。

2024-06-02 16:10:30 304

原创 并查集及应用

【代码】并查集及应用。

2024-04-06 11:19:55 125 1

原创 ClickHouse笔记

天下武功唯快不破!

2024-04-04 14:22:27 1161

原创 技术笔记模板

1.简介2. 基本概念3. 实践应用4. 性能优化5. 常见问题解答6. 总结

2024-04-04 11:48:37 105

原创 常见技术难点及方案

同一时间内不允许多个客户端同时获得锁;

2024-03-24 23:06:18 887

原创 关于项目管理的一些思考

本文是《项目管理知识体系指南(PMBOK指南)》的读书笔记,并结合软件开发项目过程的一些经验对项目管理进行总结。项目管理被定义为一种结构化和规范化的方法,用于规划、组织和监督项目的顺利完成。项目管理的价值在于通过科学的方法和手段,优化资源配置,确保项目按时、按质、按预算完成,满足客户需求和利益相关者期望,从而最大化项目效益。

2024-03-24 15:21:17 1190

原创 一些规律、现象

飞轮效应”是一个管理学概念,它的核心思想是:企业的发展过程如何通过推动飞轮旋转,形成自身势能,从优秀到卓越的过程。吉姆·柯林斯在他的《从优秀到卓越》一书中提出了飞轮效应的概念,他认为,企业的成长,包括从无到有、从优秀到卓越的这个过程比作一个飞轮,将企业的发展过程看作是推动飞轮旋转的过程。所谓飞轮效应是指为了使静止的飞轮转动起来,一开始你必须使很大的力气,一圈一圈反复地推,每转一圈都很费力,但是每一圈的努力都不会白费,飞轮每转一圈都会形成其自身的势能,飞轮会转动得越来越快。挪威人喜欢吃沙丁鱼,尤其是活鱼。

2024-03-23 15:47:21 663

原创 干好工作18法

FROM 微信公众号“泽平宏观”,“泽平宏观” FROM 网络方法是为达到某种目标而采取的途径、步骤、手段等,是人类认识和改造客观世界的明灯和路标。方法十分重要,方法得当事半功倍,方法失当事倍功半。方向正确以后,方法便为王。工作中只有掌握科学的工作方法,才能确保高效,圆满完成各项任务,提升工作的境界和水平。不要差不多,盯住完美 长计划、短安排、立即做 日清月结,有条不紊 学习工作化,工作学习化 注重积累,始终在研究的状态下工作 信息要对称,善于沟通 分工不分家,主动补台 执行有力,反

2024-03-19 23:00:26 981

原创 Java语言: 多线程

AQS的全称为(AbstractQueuedSynchronizer)抽象的队列式的同步器,是⼀个⽤来构建锁和同步器的框架,使⽤AQS能简单且⾼效地构造出应⽤⼴泛的⼤量的同步器。AQS核⼼思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的⼯作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占⽤,那么就需要⼀套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是⽤CLH(虚拟的双向队列)队列锁实现的,即将暂时获取不到锁的线程加⼊到队列中。简介AQS利用了模板方法模式。

2024-03-19 00:06:01 898

原创 微服务原理和实践

1. 简介2. 微服务架构3. 微服务技术选型4. 微服务实践5. 微服务挑战6. 总结7. 参考资料

2024-03-16 15:58:50 335

原创 Go语言: 基础总结

1. 简介介绍 Go 语言的概述,包括其定义、特点和优势。 简要介绍 Go 语言的应用场景。2. 基础语法详细介绍 Go 语言的基础语法,例如: 变量和常量 数据类型 运算符 控制流语句 函数 结构体 接口 包 3. 并发编程介绍 Go 语言的并发编程特性,例如: Goroutine Channel WaitGroup Sync Context 4. 高级特性介绍 Go 语言的高级特性,例如: 反射 测试 错误处理 泛

2024-03-16 15:50:44 272

原创 Nginx笔记

这里直接抄一下https://blog.csdn.net/initphp/article/details/72912128。文中所述一个自定义Nginx模块,麻雀虽小五脏俱全,最简单的最朴实无华的例子更加容易理清楚流程。步骤详情创建扩展模块目录在nginx-1.13.1文件夹下,创建一个/extends/ngx_http_hello_module的目录2. 创建config文件我们的模块名称为:ngx_http_hello_module。

2024-03-16 15:40:49 1535

原创 Hive:数据仓库利器

总结 Hive 的关键知识点,并提供学习资源和进一步研究方向。

2024-03-16 15:23:05 312

原创 Flink笔记

总结 Flink 的关键知识点,并提供学习资源和进一步研究方向。

2024-03-16 15:19:37 236

原创 Kafka:分布式消息队列

总结 Kafka 的关键知识点,并提供学习资源和进一步研究方向。

2024-03-16 15:17:11 311

原创 Elasticsearch:全文搜索的利器

总结 Elasticsearch 的关键知识点,并提供学习资源和进一步研究方向。

2024-03-16 15:07:44 267

原创 Redis笔记

总结 Redis 的关键知识点,并提供学习资源和进一步研究方向。

2024-03-16 15:05:42 193

原创 MySQL笔记

介绍 MySQL 的概述、优势和劣势,以及应用场景。介绍 MySQL 的核心概念,例如数据库、表、行、列、索引等。支持表锁,适合读密集的场景,不支持外键,不支持事务,索引与数据在不同的文件支持行、表锁,默认为行锁,适合并发场景,支持外键,支持事务,索引与数据同一文件编号区别InnoDBMyISAM1锁InnoDB 支持行级锁(row-level locking)和表级锁MyISAM 只有表级锁(table-level locking)2索引(B+树,存具体数据,聚簇索引)其数据文件本身就是索引文件。相比My

2024-03-16 15:02:33 946

原创 JAVA语言: Spring

IoC & AOP 不是 Spring 提出来的,它们在 Spring 之前其实已经存在了,只不过当时更加偏向于理论。Spring 在技术层次将这两个思想进行了很好的实现。IoC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。例如:现有类 A 依赖于类 B从以上两种开发方式的对比来看:我们 “丧失了一个权力” (创建、管理对象的权力),从而也得到了一个好处(不用再考虑对象的创建、管理等一系列的事情)AOP

2024-03-16 13:44:09 896

原创 JAVA语言: 基础

Java是一种面向对象的编程语言,它将程序的代码和数据组织成对象。对象是具有属性和方法的实体。面向对象编程具有许多优点,例如代码复用性、可维护性和可扩展性。类是对象的模板,它定义了对象的属性和方法。对象是类的实例,它具有类的所有属性和方法。

2024-03-16 13:11:39 809

原创 Java语言: JVM

Java内存模型简称JMM(Java Memory Model),是Java虚拟机所定义的一种抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让java程序在各种平台下都能达到一致的内存访问效果。

2024-03-16 12:36:28 1037

原创 计算机网络

就是一个对象(比如URL)的标志值,就一个对象而言,比如一个html文件,如果被修改了,其Etag也会别修改,所以,ETag的作用跟Last-Modified的作用差不多,主要供WEB服务器判断一个对象是否改变了。举例,客户端A向服务端B发送数据,受到网络状态的影响,可能A发送的数据B很久以后才收到(实际上A已经通过重传机制重新发送了),当这个阻塞的数据到来的时候,B就会误以为这是一个新的连接,则B将等待A,但是实际上A并没有发起新的请求,这就导致了资源的浪费。如果窗口大小为零,发送方会停止发送数据。

2024-03-16 11:38:39 760

原创 登录验证时序总结

对不同类型的登录方式进行总结,完善ing

2024-02-20 20:02:55 227

原创 研发工程师必备的一些自测技能

研发工程师掌握一些测试技巧是十分必要的。测试是软件开发过程中必不可少的环节,是保证软件质量的重要手段。服务端软件工程师掌握一些测试技巧,可以做到:提高软件质量:测试可以发现软件中的缺陷和错误,从而帮助提高软件的质量。缩短开发周期:测试可以帮助发现软件中的潜在问题,从而避免在后续的开发过程中重复修复。降低开发成本:测试可以帮助发现软件中的缺陷和错误,从而避免在后续的维护过程中进行昂贵的修复。

2024-02-18 19:09:43 1107

原创 服务端研发工程师技能树

基础技能编程语言:Java、Go、Python、C++ 等数据结构与算法操作系统网络协议:TCP/IP、HTTP 等数据库:MySQL、Redis、MongoDB 、ElasticSearch、ClickHouse、postgresql等缓存:Redis、Memcached 等消息队列:Kafka、RabbitMQ 等安全:XSS、SQL 注入、CSRF 等应用技能Web 开发:框架Spring Boot、Gin、Flask 、Vue等开发工具使用微服务:Spring Clou

2024-02-18 15:11:45 255

原创 浅谈API网关

随着微服务架构的流行,API网关逐渐进入人们的视野,并且越来越受到欢迎。在微服务体系架构中,我们将应用程序划分为多个低耦合的服务。每个服务都具有特定的功能,并交给不同的团队维护。尽管微服务具有许多优势,比如程序易于开发、维护和部署,将大团队拆分成小团队利于敏捷实践落地等,但是也带来一些问题,最为直观的就是由于接口过于繁杂,客户端难以快速、安全地访问到所需的信息。那么如何解决呢?这种情况下,我们就需要本文所分享的API网关(API Gataway)

2024-02-01 21:26:21 1088

70个Numpy练习

包含70到Numpy练习,帮助你搞定Numpy运算。资料仅供学习使用,侵权请联系,将立即删除。

2018-03-03

Deep Learning英文版原著(Bengio)

深度学习教材,Bengio等人著,附件内含中文PDF及英文PDF各一份,仅用作学习参考,不得用作商业用途

2018-03-03

空空如也

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

TA关注的人

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