自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不止极客

始于极客,不止极客。

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

原创 一个 CTO 的深度思考

一家换了 4 个 CTO 的技术公司,公司两次销售额跌到个位数。我入职之后重新搭建技术团队,就按照上边的思路管理组织,把公司业务做到垂直行业第一名,年利润破亿。我的这些适用于消费者行业,而非喝酒、拉关系、送礼的某些行业。今天和一些同事聊了一会,以下是我的观点。

2025-04-19 23:31:32 491

原创 一个 CTO 的深度思考

一家换了 4 个 CTO 的技术公司,公司两次销售额跌到个位数。我入职之后重新搭建技术团队,就按照上边的思路管理组织,把公司业务做到垂直行业第一名,年利润破亿。我的这些适用于消费者行业,而非喝酒、拉关系、送礼的某些行业。今天和一些同事聊了一会,以下是我的观点。

2025-04-19 23:30:57 488

原创 锚定效应的应用-独立站优化价格打折显示-《认知偏差手册》

人类在进行决策时,会过度偏重先前取得的资讯(这称为锚点),即使这个资讯与这项决定无关。在进行决策时,人类倾向于利用此片段资讯(锚点),快速作出决定。这个站点是我用买的模板做出的导航站,使用 next.js 语言写的,由于不了解这个语言,所以我不知道怎么去改。其实在我原来的一些独立站上的价格,我都是加上打折前与打折后的价格对比的。当 next.js 最近看了一些之后,自己就把这个功能给完善了。这也算是一个 build in public 的一天吧。– 《认知偏差手册》

2025-04-17 21:54:33 516

原创 美团的出海造成了 APP 的大故障,我作为一个非美团员工如何解决的?

我打开我的手机,先看了看网络。我才发现,我的手机上开着科学上网的软件呢。然后我就把科学上网软件一关,我就能够打开美团单车了。前几天发现了一个问题,就是我用美团扫单车的时候扫不开了,主要的表现就是白屏,转圈圈。连着两三次遇到之后,我就知道了,美团 APP 出故障了。我发现这个问题之后,我就向客服反馈了这个问题。我这时候访问到了美团的国外的服务器了,导致我打不开单车。今天我再次打开美团 APP 的时候,发现我挂着科学上网也可以扫单车了。美团的出海造成了 APP 的大故障,我作为一个非美团员工如何解决的?

2025-04-17 21:52:22 181

原创 腾讯元宝进入微信联系人,中国的 ToC 大模型终极之战

那么多人建导航站,为什么某个人的网站流量最高。同样是记账 app,为什么别人赚的钱已经可以足以支持一个团队运营了?当我打开手机看到腾讯元宝进入微信联系人的时候,我就知道 ToC 的大模型之战已经基本结束了。十几亿的中国人,即使渗透率 50%,那也是其他大模型达不到的高度。腾讯元宝进入微信联系人,中国的 ToC 大模型终极之战。“以后为先”一直都是腾讯的制胜法宝,从来不教育市场。要明白什么叫消费者导向!一味地讲创新是没有用的。

2025-04-17 21:50:45 106

原创 [特殊字符] 你应该尽早地加入 frogdr,一个重要的流量技巧

2025-04-14 03:09:01 83

原创 [特殊字符] 你应该尽早地加入 frogdr,一个重要的流量技巧.png

2025-04-14 03:08:22 223

原创 锚定效应的应用-独立站优化价格打折显示-《认知偏差手册》

人类在进行决策时,会过度偏重先前取得的资讯(这称为锚点),即使这个资讯与这项决定无关。在进行决策时,人类倾向于利用此片段资讯(锚点),快速作出决定。这个站点是我用买的模板做出的导航站,使用 next.js 语言写的,由于不了解这个语言,所以我不知道怎么去改。其实在我原来的一些独立站上的价格,我都是加上打折前与打折后的价格对比的。当 next.js 最近看了一些之后,自己就把这个功能给完善了。这也算是一个 build in public 的一天吧。– 《认知偏差手册》

2025-04-10 00:23:17 172

原创 百万架构师第四十七课:并发编程的原理(二)|JavaGuide

​ 任何对象在我们 JVM 层面有一个 oop 和 oopDesc 的对应。oop.hpp会存在一个 mark 的对象头,对象头用来存储锁标志的。这个锁标志,是用来存储对应的偏向锁、轻量锁等的标志。​ 锁是存在对象头里边的。

2025-03-12 23:38:48 337

原创 最好的百度提交每日自动提交工具【免费】

链接提交工具是网站主动向百度搜索推送数据的工具,本工具可缩短爬虫发现网站链接时间,网站时效性内容建议使用链接提交工具,实时向搜索推送数据。本工具可加快爬虫抓取速度,无法解决网站内容是否收录问题URL链接自动批量提交工具为站长提供链接批量提交通道,您可以提交想被百度收录的链接,百度搜索引擎会按照标准处理,但不保证一定能够收录您提交的链接。

2025-03-12 23:36:41 1289

原创 百万架构师第四十六课:并发编程的原理(一)|JavaGuide

​ CPU的乱序执行,本质还是,由于在多CPU的机器上,每个CPU都存在cache,当一个特定数据第一次被特定一个CPU获取时,由于在该CPU缓存中不存在,就会从内存中去获取,被加载到CPU高速缓存中后就能从缓存中快速访问。当某个CPU进行写操作时,它必须确保其他的CPU已经将这个数据从他们的缓存中移除,这样才能让其他CPU 安全地修改数据。显然,存在多个cache时,我们必须通过一个cache一致性协议来避免数据不一致的问题,而这个通讯的过程就可能导致乱序访问的问题,也就是运行时的内存乱序访问。

2025-03-11 12:24:00 663

原创 百万架构师第四十五课:并发编程的基础|JavaGuide

1. 多线程的发展历史2. 线程的应用3. 并发编程的基础4. 线程安全的问题进程 —> 线程所以,多线程最终解决的就是“等待”的问题,所以简单总结的使用场景多线程的应用场景多个客户端都是阻塞的,我只有处理完一个请求才能接收下一个请求。然后客户端就会阻塞。所以 Tomcat 采用了多线程的技术。利用了多线程的技术实现了非阻塞。在 JAVA 中有多个方式来实现多线程。继承 Thread 类、实现 Runable 接口、使用 ExecutorService 、Callable、Future 实现带返回结果的多线

2025-03-11 12:21:29 837

原创 百万架构师第四十四课:Nginx:Nginx 的扩展-OpenRestry|JavaGuide

TomcatBIONIOAIONginx多进程+多路复用master 进程 、 worker 进程​ 当它启动以后,会产生一个主进程和多个工作进程。多个工作进程是通过 Master 进程去管理的。它是基于 Master 进程 Fork 出来的。当我们的 Nginx 收到一个请求的时候,它会向我们的 work 发送一个信号。然后通过 worker 进程去管理。类似于中心进程的意思。​ 当有一个请求过来的时候,只会有一个worker进程去处理。

2025-03-10 22:47:23 965

原创 百万架构师第四十三课:Nginx:Nginx 应用实战|JavaGuide

​ 后端的应用一定会存在动态资源和静态资源。必须依赖服务器生存的我们称为动态资源。不需要依赖容器的比如css/js或者图片等,这类就叫静态资源。​ 我们可以把静态资源放在 Nginx 上。静态资源不会频繁变动。​。

2025-03-10 22:46:51 1086

原创 百万架构师第四十二课:Nginx:Nginx 的初步认识|JavaGuide

Nginx 是一个高性能的反向代理服务器正向代理代理的是客户端反向代理代理的是服务端。

2025-03-04 22:18:32 756

原创 百万架构师第四十一课:RabbitMq:可靠性投递和实践经验|JavaGuide

集中放在properties文件中体现元数据类型(_VHOST _EXCHANGE _QUEUE);体现数据来源和去向(XXX_TO_XXX);

2025-03-04 22:17:10 600

原创 百万架构师第四十课:RabbitMq:RabbitMq-工作模型与JAVA编程|JavaGuide

​ AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品、不同的开发语言等条件的限制。​ AMQP的实现有:RabbitMQ、OpenAMQ、Apache Qpid、Redhat Enterprise MRG、AMQP Infrastructure、MQ、Zyre等。

2025-02-25 00:40:33 1050

原创 百万架构师第三十九课:RabbitMq:Linux安装RabbitMq|JavaGuide

从架构的发展过程说起什么是zookeeperZookeeper安装部署Zoo.cfg配置文件分析。

2025-02-25 00:38:32 255

原创 百万架构师第三十八课:RabbitMq:Windows安装RabbitMq|JavaGuide

该服务将使用其默认设置正常运行。你可以自定义RabbitMQ环境或编辑配置。

2025-02-22 00:07:20 1312

原创 百万架构师第三十七课:RabbitMq:高可用集群搭建步骤|JavaGuide

socat 被 rabbitmq-server-3.6.12-1.el6.noarch 需要。将5672端口映射为5673端口,15672端口映射为15673端口。5、HAProxy + Keepalived 高可用方案。保持三台机器的.erlang.cookie同步。二、在两个内存节点上安装Keepalived。1)在两个内存节点上安装HAProxy。2、同步.erlang.cookie。1)安装Keepalived。三台机器的hosts都配置。创建用户:三台服务器都执行。RabbitMQ镜像队列。

2025-02-22 00:06:22 477

原创 百万架构师第三十六课:kafka:KafkaManage|JavaGuide

bin/kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口;启动zk集群,kafka集群,再启动kafka-manager服务。yum安装sbt(因为kafka-manager需要sbt编译)waiting 的话,直接 kill 相应的 sbt 命令。2)编译kafka-manager。

2025-02-20 23:54:50 257

原创 百万架构师第三十五课:kafka:分布式消息通信Kafka(三)|JavaGuide

消息的存储原理Partition 的副本机制原理副本数据的同步原理​ 消息的发送策略,根据 key 的算法路由到 Kafka 的一个分区上,分区是一个物理上的一个结构。Linux 会定时清理/tmp目录下的文件。生产环境的时候,文件都是另外放到另一个磁盘上。server 里边可以配置日志文件的路径。具体的分区会落到我们磁盘的某一个路径下,分区可以指定我们这个 Topic 分成多少个分区。分区可以指定对于当前这个Topic分成多少个分区。​ 分区落到我们的broker上的位置。

2025-02-20 23:52:21 771

原创 百万架构师第三十四课:kafka:分布式消息通信Kafka(二)|JavaGuide

​ 默认的 Kafka 会根据 Key 去计算,我们也可以去扩展自己的分区策略。/**** 自定义分区策略*//**** 重写发送的策略*/@Override// 根据消息得到具体的分区列表// 随机的分区} else {// Hash 取模运算@Override@Override> map) {​ 通过前面的案例演示,我们应该能猜到,同一个 group 中的消费者对于一个 topic 中的多个 partition,存在一定的分区分配策略。

2025-02-19 23:50:44 1135

原创 百万架构师第三十三课:kafka:分布式消息通信Kafka(一)|JavaGuide

高性能高吞吐量​ Kafka 是一款分布式消息发布和订阅系统,具有高性能、高吞吐量的特点而被广泛应用于大数据传输场景。它是由 LinkedIn公 司开发,使用 Scala 语言编写,之后成为 Apache 基金会的一个顶级项目。kafka 提供了类似 JMS 的特性,但是在设计和实现上是完全不同的,而且他也不是 JMS 规范的实现。/bin操作 kafka 的可执行脚本/config配置文件/libs依赖库目录/logs日志数据目录。

2025-02-19 23:49:42 595

原创 百万架构师第三十二课:协调服务-zookeeper:zookeeper的实践与原理|JavaGuide

数据存储基于 Java API初探zookeeper的使用深入分析Watcher机制的实现原理Curator客户端的使用,简单高效。

2025-02-17 22:17:51 927

原创 百万架构师第三十一课:协调服务-zookeeper:zookeeper实践之配合注册中心完成RPC手写|JavaGuide

我们在选择一个方案去实现分布式锁的时候,我们得知道我们要解决的是一个什么问题,或者说我们使用zookeeper实现对应的分布式锁是要解决什么问题。在以前的以及现在的单进程的多线程模型中,我们会利用多线程的基础数据去提高我们程序的运行效率,在现在CPU多核心的背景之下,每个CPU的每个核心能够同时去运行同一个线程,那么这个时候就会存在一个线程的并行执行,如果说多线程并行去访问某一个共享资源的话,那么就会造成共享资源、共享变量的线程安全问题,这是多线程领域中线程安全的一个问题。我们会通过或者Lock。

2025-02-17 22:15:18 236

原创 百万架构师第三十课:协调服务-zookeeper:了解zookeeper的核心原理|JavaGuide

了解zookeeper及zookeeper的设计猜想Zookeeper集群角色深入分析ZAB协议从源码层面分析leader选举的实现过程关于zookeeper的数据存储。

2025-02-12 22:19:55 1709

原创 百万架构师第二十九课:协调服务-zookeeper:初步认识zookeeper|JavaGuide

从架构的发展过程说起什么是zookeeperZookeeper安装部署Zoo.cfg配置文件分析。

2025-02-12 22:19:07 843

原创 百万架构师第二十八课:RMI :分布式通讯框架RMI的原理|JavaGuide

远程过程调用集中式到分布式RMI(JRMP)thriftgrpcdubboRPC框架的不断演进,基于TCP/IP协议之上封装了特定的协议通讯就是RMI。

2025-02-10 22:43:47 491

原创 百万架构师第二十七课:分布式架构的基础:序列化和反序列化|JavaGuide

使用tomcat时,把session放在内存中,如果用户比较多的话,比如说10万,100万,假设,那我们会把session数据放在磁盘上,然后用的时候再反序列化。Java中允许在内存中创建一些可复用的java对象,只有在JVM在运行时对象才会存在,然后JVM的生命周期限制了对象的生命周期。引用的对象不会被复制。它只是克隆当前这个对象本身和这个对象对应的值,但是这个对象里边成员变量里边的对象所指向的引用,它不会再去克隆。序列化的类是四个字段,反序列化的类是三个字段,两个serialVersionUID一样。

2025-01-23 12:13:18 260

原创 百万架构师第二十六课:分布式架构的基础:分布式系统的基石HTTP协议与HTTPS协议|JavaGuide

访问支付宝,微信的开放接口 都是基于HTTP对外提供的开放服务 API都是基于HTTP协议的,微服务中的服务之间的调用大部分都是基于HTTP协议的。Web层提供http协议的对外接口http协议是基于TCP可靠通讯协议之上的fiddler:这是一个抓包工具,抓取网络上一个请求。所有的请求都经过了fiddle。posthtt/1.1方法 URL/URI 协议的版本。

2025-01-22 12:58:07 510

原创 百万架构师第二十五课:分布式架构的基础:分布式系统的基石TCP-IP通讯协议|JavaGuide

socket可以认为是一个抽象层,应用程序通过它来发送和接收消息。这个时候通过应用程序打开文件句柄,读取数据磁盘,或者把数据写入到磁盘上。使用socket可以把我们的应用程序添加到网络上,而且能跟和它处于一个网络的应用去通信,这就是socket。不同的类型的socket和底层的协议是有关系的。字节流数据报文Socket 套接字。基于socket 选择协议(TCP [1-65535端口] UDP),然后带上IP(基于IP协议)Netty是一个基于NIO的框架TCP协议是一个全双工的协议。

2025-01-21 22:08:30 899

原创 百万架构师第二十四课:漫谈分布式架构:分布式架构设计|JavaGuide

主流架构模型-SOA架构和微服务架构领域驱动设计及业务驱动划分。分布式架构的基本理论CAP、BASE以及应用什么是分布式架构下的高可用设计分布式架构下的可伸缩设计构建高性能的分布式架构SOA架构和微服务架构Service Oriented Architecture面向服务的架构,是架构模型,不是解决方案,是一种设计方法在这种方法下,有多个服务,而服务之间是相互依赖的或者通过一定的通讯机制去完成通讯的。在这个服务中,每个服务独立存在,而且可以单独运行和发布ESB企业服务治理总线ES

2025-01-20 18:20:12 622

原创 百万架构师第二十三课:漫谈分布式架构:分布式架构的演进过程|JavaGuide

终端>>>>web(应用服务)>>>>(服务治理的中间件)>>>>领域服务>>>>(数据库治理中间件)>>>>数据库。帮你屏蔽一些服务的信息,包括不同的数据协议,不同的数据格式,都可以进行统一的约束。按照业务的维度拆分数据库,不同的业务所使用的数据库放在不同的数据库中。输入设备:(各个节点之间的通讯,服务之间的通讯,人机交互)一个服务的提炼,对外有web,有service的调用。(隔离,故障的隔离,单个节点的故障不影响集群的运行)

2025-01-19 19:13:11 1302

原创 百万架构师第二十二课:源码分析:Spring 源码分析:Spring经典面试答疑|JavaGuide

编码,零配置”:会导致后面学习的人,对底层的原理不了解,给深入学习带来一些困难。中,事务是不支持跨数据源的。底层的原理(面试时向面试官征求意见,也是对面试官的一种尊重)解决:使用中间件,做一些消息同步,利用分布式锁去实现分布式事务。3、Java业界万能胶(松耦合(开发时),高聚合(运行时))的新特性就开始考虑这个问题了,如果对并发有要求,推荐用。这个技术目前没有深入地研究过,但是,我拥有比较强的。来实现的(Object),也是基于。,当创建语句集的时候开启事务。任意字符重复任意次数。

2025-01-18 13:23:03 756

原创 百万架构师第二十一课:源码分析:Spring 源码分析:Spring5新特性及应用举例|JavaGuide

是一个框架的框架,只要是在Spring生态之内,它真的能够实现零配置启动集成的工具,框架(自己内部就实现了Web容器)答:asm是一个Java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。答:只是为了告诉大家有这个特性存在,多线程提升性能(高吞吐量的情况才能体现)答:当然,必须要抛异常,没有异常就认为没有出问题,也就不涉及数据回滚。答:无所谓优势与劣势之说,无非就是应用环境不一样,在发展中进步。答:不是这个意思,没有性能上的区别,只有方便与不方便的区别。答:spring.io官网上,啥都有。

2025-01-17 13:04:15 692

原创 百万架构师第二十课:源码分析:Spring 源码分析:手写定制自己的ORM框架|JavaGuide

2、再写一个工具类QueryRuleSqlBuilder,循环ruleList对每一个条件分别处理processAnything,主要是构建where后面语句。-----------在我的团队中,极少数使用多表关联查询-------------b)查多次,在内存中处理数据关系,一般会在Service中进行处理。为了操作方便,每次置换完,执行完成以后,会将数据源恢复到默认的设置。比如说查某个表的字段是另外一个表的条件,以此类推多个表的话?答:只要用我的框架,每个表必须有主键,哪怕是自增。

2025-01-16 12:45:25 513

原创 百万架构师第十九课:源码分析:Spring 源码分析:手写ORM框架顶层设计|JavaGuide

如果是删、改,以ID作为唯一的检索条件,如果没有ID,那么要先查出来得到ID。只要是Spring相关的配置都以 application- 开头。建议不要把所有的东西放在一个文件中,这样不便于开发团队的维护。用 Java 对象来描述对象与对象之间的关系和数据内容。所有的删除、修改、增加操作返回。对外输出都用 ResultMsg。所有的集合查询返回 List。所有的单条查询返回 T。所有的ID采用 Long。微信公众号:不止极客。

2025-01-15 12:27:43 758

原创 百万架构师第十八课:源码分析:Spring 源码分析:数据库事务操作原理及SpringAOP配置|JavaGuide

​ 这条更新的目标记录,如果需要对这个表进行扫描的话,这里会把整个表都锁住,然后把整张表都同步到内存中,那么这个表就不允许任何的增删改操作。只有当我把缓冲区的数据消掉以后,更新到数据库里边,这条记录才会被解锁,其他更新才能进行。记录事务的开始到结束,还有中间的报错,以及整个链接成功与否还有返回结果,状态码,查出来是什么,更新的是什么。​ 首先检查原始表中有没有相关联的记录,先把相关联的记录写到内存中来,只有我们的缓冲区没有任何的异常,它才会把这条记录写进去。面向接口编程是一种接口,

2025-01-14 18:17:19 927

原创 百万架构师第十七课:源码分析:Spring 源码分析:Spring声明式事务操作实现原理|JavaGuide

​ 作为一个编程语言,定义一个接口,如果你想用我的语言去连接你的数据库,你必须实现我的接口。分布式:分布式事务处理瞬时一致性,最终的一致性(异步核对,主流的方式就通过日志来分析)包给你,然后不同的数据库引入不同的数据库驱动包,数据库启动包是由数据库厂商提供的。事务是存在内存中的,断电了,这个事务就不存在了,事务就是回去了。ACID,最大的问题,解决的是数据的一致性的问题。方法,传了一个 IP,一个端口,进行一个封装。都是调用的 Connection 的方法。只要出现了异常,就不会提交。

2025-01-13 08:02:26 877

空空如也

空空如也

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

TA关注的人

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