随笔分类 -  架构之路

摘要:一、配置中心的必要性 当代码中有一些变量可能会动态变化时,或者一些变量使用的地方比较多,此时就可以采用配置的方式来动态读取,而不是将变量的值写死在代码里,否则难以维护,所以应用程序就有了配置文件。单机应用程序的配置通常就是配置文件,集群程序的配置就需要配置中 心。如果没有配置中心,那么在以下场景就会 阅读全文
posted @ 2021-12-24 14:47 Lucky帅小武 阅读(540) 评论(0) 推荐(0)
摘要:一、Nacos简介 1、Nacos是什么? Nacos是阿里巴巴开源的一个为微服务提供服务发现、服务配置和服务管理的微服务基础设施,简单说就是Nacos为微服务架构提供了分布式配置和服务注册中心的工作。 2、Nacos有什么功能? Nacos主要有两大功能:注册中心和配置中心 2.1、注册中心 a. 阅读全文
posted @ 2021-12-23 09:32 Lucky帅小武 阅读(1772) 评论(0) 推荐(0)
摘要:一、ZooKeeper简介 ZooKeeper是一个分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。 1.1、数据结构 ZooKeeper采用znode的树状层级结构来存储信息,znode节点可能包含数据也可能没有数据,znode存储数据格式 阅读全文
posted @ 2021-12-14 15:01 Lucky帅小武 阅读(767) 评论(0) 推荐(0)
摘要:一、Tomcat目录 bin:存储Tomcat相关可执行脚本,如启动和关闭Tomcat的命令start.sh和shutdown.sh conf:存储Tomcat相关的配置文件 server.xml:Tomcat的服务配置,Tomcat启动就代表一个Server,需要配置Server下的Service 阅读全文
posted @ 2021-11-25 11:45 Lucky帅小武 阅读(1027) 评论(0) 推荐(0)
摘要:一、简介 Arthas是Alibaba开源的一款Java诊断工具,采用命令式交互模式,用来排查各种JVM的问题。 Arthas主要提供了一下几种功能 1、实时监控JVM运行状况 2、实时查看已加载的类型和类加载器信息 3、通过字节码增强技术实现方法执行的监控和统计 二、Arthas的使用 2.1、A 阅读全文
posted @ 2021-08-10 21:10 Lucky帅小武 阅读(2294) 评论(0) 推荐(1)
摘要:前言 分布式项目只要有业务交互就会涉及到分布式事务问题,事务通常分为三步:创建事务、执行事务、提交事务或回滚事务,单机模式下只要一个事务可以依赖数据库的事务实现,而分布式事务往往涉及到多个项目多个数据库的同步更新操作,此时就需要有一套分布式事务解决方案,否则就会出现分布式系统数据不一致的问题。所以分 阅读全文
posted @ 2021-05-25 16:43 Lucky帅小武 阅读(1893) 评论(1) 推荐(1)
摘要:前言 众所周知,Nginx是现如今最热门的反向代理服务器了,并且通Apache一样都是属于web服务器。Apache的主要优点是稳定和支持跨平台,但是受限于Apache诞生的年代较早,互联网环境远没有现如今的复杂,所以Apache设计之初是重量级的并且不支持高并发。 正所谓时势造英雄,于是支持高并发 阅读全文
posted @ 2021-05-21 16:03 Lucky帅小武 阅读(3370) 评论(0) 推荐(0)
摘要:一、连接池简介 1.1、连接 客户端想要访问服务器首先需要和服务器创建一个连接,比如数据库连接、redis连接等。而连接相当于是一个资源,服务器资源有限,所以同时可以提供的连接数是有限制的。如果并发的客户端数量较大,就会导致同时需要大量的连接,很可能会导致服务器性能急剧下降,甚至有宕机的风险。对于服 阅读全文
posted @ 2020-12-24 19:40 Lucky帅小武 阅读(638) 评论(0) 推荐(0)
摘要:前言 布隆过滤器的作用是判断一个元素是否存在于一个集合中。 比如有一个集合存储了全国所有人的身份证号码,那么该集合大小有十几亿的大小,此时如果判断一个身份证是否存在于该集合中,最简单也是最笨的办法就是遍历集合,挨个判断是否和校验的身份证号码相同来判断。而布隆过滤器就是通过一个提高空间和时间效率的一种 阅读全文
posted @ 2020-09-18 16:02 Lucky帅小武 阅读(1756) 评论(0) 推荐(0)
摘要:一、业务背景 当项目中涉及到频繁的对象的创建和回收的时候,就会出现频繁GC的情况,这时就出现了池化的技术来实现对象的循环使用从而避免对象的频繁回收,Netty包下的Recycler就实现了这一功能。当创建对象的时候直接从池中获取,但使用完毕进行回收的时候, 直接将对象回收到池中,这样可以大量减少对象 阅读全文
posted @ 2019-08-17 21:36 Lucky帅小武 阅读(1192) 评论(1) 推荐(0)
摘要:提起分布式系统,就会涉及分布式事务,本文就以金融项目的转账业务为例,分析各种业务场景下的转账业务的事物问题。 一、业务场景 以工商银行转账业务为例,那么项目的分布式架构大致如下,一个银行的一个支行部署一个节点,那么相同节点之间的业务就是本地事务、不同节点之间的就是分布式事务 转账业务包括以下三种情况 阅读全文
posted @ 2019-08-16 16:51 Lucky帅小武 阅读(3398) 评论(0) 推荐(0)
摘要:关于dubbo的描述就不再赘述,直接进入主题,那就是dubbo的工作原理。dubbo分为服务提供者和服务消费者,主要的工作内容有以下几点:提供者暴露服务、消费者引入服务、提供者和消费者和注册中心之间的通信、消费者消费服务、监控中心、其他扩展 一、provider暴露服务 1、首先provider可以 阅读全文
posted @ 2019-07-20 23:04 Lucky帅小武 阅读(9299) 评论(0) 推荐(0)
摘要:CAP理论是指分布式系统架构中通常只能够满足CAP三个指标中的两个,而不能同时满足CAP三个指标 C(Consistency):一致性 一致性指的是All nodes see the same data at the same time,也就是说所有节点在同一时间看到的数据必须是一模一样的,比如足球 阅读全文
posted @ 2019-05-23 21:02 Lucky帅小武 阅读(748) 评论(0) 推荐(0)
摘要:Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一、什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改Java字节码的技术。java类编译之后形成字节码被JVM执行,JVM在执行这些字节码之前获取这些字 阅读全文
posted @ 2019-04-09 21:47 Lucky帅小武 阅读(5822) 评论(0) 推荐(0)
摘要:TCP协议是网络多层协议中运输层的最重要的协议之一,运输层是两台主机的进程之间的通信。除了TCP还有一个是UDP协议(用户数据包协议) TCP全称是Transmission Control Protocol,意思是传输控制协议 一、TCP简介 1.TCP协议两个对等运输实体之间进行传送的数据单位是: 阅读全文
posted @ 2019-04-08 22:16 Lucky帅小武 阅读(1753) 评论(1) 推荐(1)
摘要:介绍 SkyWalking项目是由华为大牛吴晟开源的个人项目,目前已经加入Apache孵化器。SkyWalking项目的核心目标是针对微服务、Cloud Native、容器化架构提供应用性能监控和分布式调用链追踪功能,目前链路追踪和监控应用支持的组件包括主流框架和容器,如dubbo、motan、sp 阅读全文
posted @ 2019-03-26 23:47 Lucky帅小武 阅读(9206) 评论(0) 推荐(0)
摘要:1、查看内存:free -m 2、查看硬盘:df -hl 3、查看防火墙开放端口号:service iptables status 4、查看IP地址:ifconfig 5、查看流量:iftop -n 6、查看进程:top 7、nginx配置:/etc/nginx/nginx.conf 8、nginx 阅读全文
posted @ 2018-11-21 10:20 Lucky帅小武 阅读(152) 评论(0) 推荐(0)
摘要:1.反射是指在程序运行过程中动态获取类的相关信息,包括类是通过哪个加载器进行加载,类的方法和成员变量、构造方法等。 如下示例可以通过三种方法根据类的实例来获取该类的相关信息 这里虽然c1、c2和c3是三个不同的对象,但是都是指向User类的Class对象,而每个User对象的实例的Class对象都是 阅读全文
posted @ 2018-08-15 18:14 Lucky帅小武 阅读(605) 评论(0) 推荐(0)
摘要:我们都知道JAVA中A++和++A在用法上的区别,都是自增,A++是先取值再自增,++A是先自增再取值,那么为什么会是这样的呢? 1.关于A++和++A的区别,下面的来看个例子: 虽然现在我们知道a++是先取值再自增,而++a是先自增再取值,那么它是怎么实现的呢,接下来我们来看下这段代码被JVM编译 阅读全文
posted @ 2018-08-10 14:13 Lucky帅小武 阅读(1346) 评论(0) 推荐(0)