- 博客(611)
- 资源 (1)
- 收藏
- 关注
原创 总结与反思: 第二部
1.日志打印:业务关键字+唯一主键+,特别重要,日志太多,你过滤筛选的范围或缩小很多2.注意业务发生的起始日期和结束日期,我们之前有一笔业务 开始和结束时间差了三天,y一度按时间排查找不到原因。所以注意一下业务发生的开始和结束时间......
2020-09-26 19:23:54 196
原创 技术通用小知识总结
1.线程与进程的区别 进程是一种抽象的描述,一个应用就是一个进程,例如我们的java进程, 线程是一种具体的描述,java进程中有我们的logback-append线程,http线程,自定义实现线程等关系是一个大类到细分的关系2.内核线程和用户线程内核线程:管理文件资源,执行一些特定的功能, 文件读写,函数 执行,运行环境,属于操作系统底层层面用户线程:线程的调度,创建都......
2020-04-07 16:23:56 268
原创 技术小知识:云计算服务下的IaaS,PaaS,SaaS⑥
云计算起源仿照天空的云朵聚集,对大量服务器的远程管理。以便能对服务器做空间、资源的最大利用和降低操作执行命令的复杂度。PASS:除了业务系统以外的所有边缘的协同工具系统,组件,中间件,CDN加速,容器,负载等。在服务器以一种云的形式存在,衍生除了很多服务提供,以便用户可以方便,快速的使用。SASS:硬件,软件你都不需要处理,完全是使用。网页应用,APP应用等。IAAS:基础设置,硬件,网盘,网络,宽带等。
2024-03-08 10:04:52 718
原创 设计模式:观察者模式 ⑧
观察者模式是一种常见的设计模式,也称作发布-订阅模式。它主要解决了对象之间的通知依赖关系问题。在这种模式中,一个对象(称作Subject)维护着一个对象列表,这些对象(称作Observers)都需要被通知来响应某些事件。观察者模式的好处在于它创建了松耦合的对象之间的一对多关系,使得Subject和Observers之间的耦合度降低。在Java中,通过定义接口和抽象类等方式,可以很容易实现观察者模式。
2024-03-06 16:39:59 605
原创 设计模式:代理模式 ⑦
动态代理是一种特殊的代理模式,它可以在运行时动态地创建代理对象,而不需要事先定义代理类。从运行结果可以看出,代理对象在调用真实对象的方法之前和之后,都执行了一些额外的操作,从而对真实对象进行了增强或控制。这个例子是使用JDK动态代理来实现一个日志代理,它可以在调用目标对象的方法之前和之后,记录相关的日志信息。从运行结果可以看出,代理对象在调用真实对象的方法之前和之后,都执行了一些日志操作,从而对真实对象进行了增强。等,代理模式也有自己的优缺点,使用时需要根据具体的场景和需求来选择合适的类型和方式。
2024-03-06 11:10:52 988
原创 设计模式:策略模式 ⑥
策略模式(Strategy Pattern)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。其主要目的是通过定义相似的算法,替换if else 语句写法,并且可以随时相互替换。
2024-03-05 15:28:47 925
原创 设计模式:工厂模式 ⑤
主要作用:屏蔽对象创建过程,减少上层关注度,解耦并且内部方法可做更多扩展增强的处理。(比如使用映射消除if代码,存在多个同类对象需要抽象策略处理的时候)工厂模式:一个中介作用,在创建对象的时候。
2024-03-05 14:08:15 273
原创 设计模式: 单例模式 ④
单例模式是一种非常常用的设计模式,在多线程环境下,它可以确保只有一个实例被创建,并提供一种全局访问这个实例的方式。在Java中,可以通过私有构造函数和静态方法实现单例模式。在实现单例模式时,需要注意线程安全性、序列化问题以及反射问题。尽管单例模式非常有用,但也有一些缺点,例如它可能导致代码变得更加复杂,而且在多线程环境下可能会影响性能。因此,在使用单例模式时需要根据具体情况进行权衡。
2024-03-05 12:57:17 657
原创 设计模式:六大原则 ③
里氏代换原则是对开闭原则的补充,实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。💌 使用多个隔离的接口,比使用单个接口要好,降低类之间的耦合度,一个功能一个接口。通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。💌 开闭原则的基础,针对接口编程,依赖于抽象而不依赖于具体,即依赖接口而不是实体类。
2024-03-04 13:12:11 558
原创 设计模式:JAVA三大特性 ②
这是一种面向对象编程的底层编程思想。一切以模块化思维进行事件处理。③、封装也代表着一种保护性,自己内部的一些属性和行为的处理可以做到很好的权限控制。多态是同一个行为具有多个不同表现形式或形态的能力。概念的解释就代表着灵活性和扩展性的表现。②、封装隐藏属性和实现细节,减少用户对接的关注度,一种对外友好的编程方式。①、把一些东西规整起来,封口打包,便于运载、使用管理和传输。
2024-03-04 10:56:02 196
原创 技术小知识:面向对象和过程的区别 ⑤
面向对象多了很多对象的创建、使用,销毁的过程资源消耗。是一种模块化编程思想。面相对象:始终把所有事情思考归类、抽离封装成对象来调用完成。面向过程:直接平铺展开按顺序执行完成任务。
2024-03-03 21:22:24 269
原创 设计模式:什么是设计模式?①
1. 是一类程序设计思想2. 是在大量实践过程中摸索总结出的标准经验提炼3. 具有多样性和丰富性,不同情况应用的思想不同设计模式就像盖房子的图纸一样,是具有轮廓型的抽离思想。在这样的条件、环境下,或者以一种发展的眼光来看,这个图纸在衡量优劣下是最适合的。有优点有缺陷,这个是必然的,没有最好的设计模式,只有不断改进的适合的设计模式。
2024-03-03 19:45:20 396
原创 RabbitMq:RabbitMq消息中的相关处理 ③
在生产者端设置开启 confirm 模式之后,你每次写的消息都会分配一个唯一的 ID,然后如果写入了 RabbitMQ 中,RabbitMQ 会给你回传一个 ack 消息,告诉你说这个消息已经收到。在确认消息被接收之前,消费者可以预先要求接收一定数量的消息,在处理完一定数量的消息后,批量进行确认。在投递模式期间,当消息到达RabbitMQ时,RabbitMQ会自动地、不断地投递消息给匹配的消费者,而不需要消费端手动来拉取,当然投递消息的个数还是会受到channel.basicQos的限制。
2024-02-26 17:10:06 1241
原创 RabbitMq:RabbitMq 主从镜像模式②
rabbitmq-server为客户端提供了访问其中任何一个节点都能获取整个集群的元数据,所以生产者消费者是直观看到具体是连接到集群中的哪台机器,但可以肯定的是主队列接收exchange路由过来的消息,及推送消息给消费者,从队列是无法接收到exchange路由过来的消息的;但从队列可以接收主队列同步过来的消息,并提供给消费者。总结来说就是rabbitmq的主从队列的角色:主队列提供读写消息的能力,从队列只提供读消息的能力。所有的技术设计思想,基本都在两点上下功夫:1. 生产力上 2. 稳定上。
2024-02-25 15:49:42 637
原创 RabbitMq:什么是RabbitMq? ①
routing key:一个路由规则,虚拟机根据他来确定如何路由 一条消息。RabbitMq是一个基于消息订阅发布的一款消息中间件。Queue:消息队列,用来存放消息的队列。交换机绑定一个或多个队列。
2024-02-24 17:03:03 960 1
原创 Kafka:kafka的主从模式和故障切换 ②
因此,如果分区数量固定,消费者数量的上限就是分区的数量。这种方式更类似于Leader-Follower模式,而不是传统意义上的主从模式,因为在Kafka中,每个Broker(Kafka的服务器节点)都可能成为某个Partition的Leader,也可能是Follower,这取决于你如何配置和使用你的Kafka集群。需要注意的是,一个Partition在一个消费者组中,一次只能被一个消费者消费,所以消费者组中的消费者数量不能超过总的Partition数量,否则多余的消费者将会闲置。
2024-02-24 10:30:48 1391
原创 Kafka:kafka的技术架构? ①
6)Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。7)Offset(即id):kafka的存储文件的每个分区的偏移量都从0开始,不同分区之间的偏移量都是独立的,不会相互影响。能数据管道,流分析,数据集成和关键任务等相关的应用程序。
2024-02-23 11:28:38 879
原创 Consul:Consul下的Raft选举算法 ④
consistent:客户端的读取请求转发给leader,leader在响应客户端的读请求前要先发送心跳,确保是leader服务器才可以返回已提交的数据,牺牲了读取速度,保证了读取的强一致性,可读取到最新的数据、如果一个 Candidate 收到了超过半数的投票,则该节点晋升为 Leader,会立刻给所有节点发消息,广而告之,避免其余节点触发新的选举;default:客户端的读取请求要转发给leader,由leader响应客户端的读请求,客户端读取已经提交的数据,发生网络分区时,有可能会读取到过期的数据。
2024-02-21 18:28:16 710
原创 Consul:Consul的Gossip协议③
是一种类似流言传播式的信息通讯协议,以初始节点随机选择相近的几个点向下传播,不断重复这个过程,直至所有节点都接受到这个消息,以接近病毒式传播的方式缩短信息在众多服务间传达的时间。②.服务之间存在数量巨大和网络的复杂部署,在这样的庞大体系下,服务间的快速通讯这个问题要解决。①.分布式系统大多遵循一主多从的设计原则。Gossip:流言蜚语。
2024-02-21 12:28:29 245
原创 Consul:Consul的技术架构 ②
这个pool是与LAN gossip pool是不同的,它为具有更高延迟的网络响应做了优化,并且可能包括其他consul集群的server节点。③、定期检查注册服务状态,以gossip协议同步给server服务,防止有故障的服务被服务发现转发,client中有可用server 列表,如若 server down,会通过gossip协议广播告知client server 状态。1. Consul的集群架构服务由Consul 的client服务 和server服务共同组成,各有分工。①、不存储任何服务信息。
2024-02-21 11:14:34 328
原创 Kafka:什么是kafka? ①
kafka是一种分布式的,基于发布/订阅的消息系统。它可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
2023-07-01 15:01:21 1302
原创 Zookeeper:什么是Zookeeper? ①
Zookeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是Google Chubby 一个开源的实现。Zookeeper是一个开源的分布式协调服务框架,它是一个为分布式应用提供一致性服务的软件。一、Zookeeper是什么。
2023-06-28 18:36:47 903
原创 Consul:Consul面试题
③、相比较庞大的体系,小而精的微服务具备更强独立扩展的空间,同时对与后续同事的接触降低了一些业务复杂度和心里门槛。②、服务之间的交互网络开销增多,链路的编排复杂性。注册中心实现对微服务下众多信息的统一存储,统一管理,统一维护。①、机器的增多,对服务的监控,治理,中间件处理对于运维人员和金钱成本的增加,①、把一个大而全的系统拆分降低局部改动全局影响的风险。②、 经由一定业务边界微服务拆分更具专注化,职能化。④、单独部署,独立伸缩性,灵活性,扩展性更高。③、分布式事务,信息一致性的事情增多。
2023-06-27 12:21:31 387
原创 算法:Paxous与Raft算法 ①
(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。Paxos算法需要解决的问题就是如何在一个可能发生上述异常的分布式系统中,快速且正确地在集群内部对。并不只是狭义上的某个数,它可以是一条日志,也可以是一条命令(command)。这两种算法均是在解决分布式架构中,节点之间消息传递的一致性。共识是在一群参与者中就一个结果达成一致的过程。Paxos是一个协议系列,用于解决不可靠或易变的处理器。,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性。在常见的分布式系统中,总会发生诸如。
2023-06-27 10:16:26 192
原创 技术小知识:网络分区 ④
网络分区:很简单的解释,一个整体互通互信网络被划分了多个区域。区域与区域之间不通讯。区域内部可通讯。在分布式环境下,有时由于网络通讯故障,而不是服务器上的应用故障,导致一些节点认为应用不可用,另外一些节点认为应用仍可用。导致,整个系统在提供服务时,造成了不一致性。例子:Redis集群通常是主备集群;
2023-06-26 11:06:46 1320
原创 技术小知识:分布式中的BASE和CAP原则 ③
选择AC策略,意味着放弃P,也就是说,保证了系统的一致性和可用性,却违背了分布式系统的分区容错性;选择CP策略,意味着放弃A,也就是说,保证了系统的一致性和分区容错性,但用户的体验较差,即当系统宕机时,需要等待所有节点的数据一致时,用户才可访问系统;选择AP策略,意味着放弃C,也就是说,保证了系统的可用性和分区容错性,但是节点之间的数据会出现不一致的现象。分区容错性:分区容错性可理解为系统对节点动态加入和离开的处理能力(集群一直处于可用状态),因为节点的加入和离开可认为是集群内部的网络分区。
2023-06-25 16:51:20 891
原创 技术小知识:Gossip 信息传播扩散协议 ②
Goosip协议是一种传播扩散协议,goosip中文翻译:谣言,旨在是一种极快,极强的数据传播方式。
2023-06-25 08:55:56 107
原创 Consul:什么是Consul? ①
选择CP策略,意味着放弃A,也就是说,保证了系统的一致性和分区容错性,但用户的体验较差,即当系统宕机时,需要等待所有节点的数据一致时,用户才可访问系统;选择AP策略,意味着放弃C,也就是说,保证了系统的可用性和分区容错性,但是节点之间的数据会出现不一致的现象。因此,我们可以根据自己的需求,选择对应的策略。现在比较流行的也就是Consul和Nacos,这两个注册中心我做的项目当中都涉及到了,Zookeeper没有管理界面,一般不建议使用,而Eureka已经处于停更,并且本身就存在很多bug,一般不建议使用。
2023-06-25 08:19:41 307
原创 技术小知识:WAN和LAN区别 ①
外网要跨越的通讯商中转,众多代理,目标服务器的网络传输。也受限宽带,网络延迟等复杂链路的传输通讯。2、LAN是局域网输出接口,一般指:内网,家庭公司局域网。1、WAN是外网接接入入口,一般指:外网,广域网,公网。局域网是小规模,近距离的一种内部范围网络布局。同等文件,一般内部传输要高于公网下载传输。
2023-06-24 17:45:40 882
原创 Consul:Consul资料整理
SpringCloud官网介绍Consul:https://docs.spring.io/spring-cloud-consul/docs/current/reference/html/#spring-cloud-consul-discovery。Consul 中文教程:https://www.springcloud.cc/spring-cloud-consul.html。Consul 官网介绍:https://www.consul.io/docs。
2023-06-20 16:04:04 114
原创 SpringCloud: SpringCloud面试题 ④
springCloud是一系列框架的有序整合。目的在于大规模、分布式、微服务应用部署的解决方案。微服务是将一个大而全的业务系统按照一定的业务边界拆分成几个或多个系统,以SpringBoot微服务的方式部署应用。
2023-06-19 11:20:26 471
需要伪静态处理jar包
2018-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人