zhizhesoft

  • 首页
架构
架构

微服务简介

最近,微服务这个概念越来越流行,很多企业开始选择微服务作为自己新的架构。 那么,什么是微服务呢? 我们先来看一下架构大神martin fowler对微服务的解释。 The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable s…

2022年8月1日 0条评论 221点热度 0人点赞 risingsun 阅读全文
架构

分布式架构探索 - 1. RPC框架之Java原生RMI

1. 什么是RPC RPC(Remote Procedure Call)即远程过程调用,指的是不同机器间系统方法的调用,这和 同机器动态链接库(DLL)有点类似,只不过RPC是不同机器,通过网络通信来访问远程的资源。   2. Java RMI技术 RMI(Remote Method Invocation)即远程方法调用,是Java原生的RPC技术。  * 使用了原生的序列化机制(序列化对象实现java.io.Serializable接口)  * 底层通信基于BIO(Block IO)实现的Socket来完成  *…

2022年8月1日 0条评论 186点热度 0人点赞 risingsun 阅读全文
架构

分布式架构探索 - 2. WebService RPC框架之Apache CXF

Apache CXF是一个开源的WebService RPC框架。 例子: 1. 新建一个maven web项目, 添加pom 如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache…

2022年8月1日 0条评论 201点热度 0人点赞 risingsun 阅读全文
架构

RabbitMQ和Kafka的比较 - 再也不要把它们混为一谈

经常有人会问: “应该选择RabbitMQ还是Kafka?”。 基于某些原因, 许多开发者会把这两种技术当做等价的来看待。 的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。 不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。   异步消息模式异步消息可以作为解耦消息的生产和处理的一种解决方案。 提到消息系统,我们通常会想到两种主要的消息模式——消息队列和发布/订阅模式。   消息队列 利用消息队列可以解耦生产者和…

2022年7月29日 0条评论 44点热度 0人点赞 risingsun 阅读全文
架构

缓存穿透,缓存击穿,缓存雪崩

1. 缓存穿透 缓存穿透是指查询的key在缓存中是不存在的,那么就会直接打在数据库上,造成数据库压力增大。 eg: 如果请求带着id过来了,像查询id=-1的数据, 于是缓存里自然没有该数据,因为数据库本来也就没有该数据。 那这个就有趣了,如果不断大量恶意请求,那就是直接绕过缓存, 一直在查数据库,给数据库造成极大的压力,这就是缓存穿透。 解决方案: a、在逻辑代码处做一层请求校验     id的请求范围校验。如果请求的参数不符合规矩那就直接拒绝请求了,连缓存都拒绝请求了更别说请求到数据库了;   b、尽量坏数据也…

2022年7月29日 0条评论 37点热度 0人点赞 risingsun 阅读全文
架构

布隆过滤器及其使用场景

1. 什么是布隆过滤器? 布隆过滤器(BloomFilter)是由一个叫“布隆”的小伙子在1970年提出的,它是一个很长的二进制向量,主要用于判断一个元素是否在一个集合中。 在介绍原理之前,要先讲一下Hash函数的概念。 我们在Java中的HashMap,HashSet其实也接触过hashcode()这个函数, 哈希函数是可以将任意大小的输入数据转换成特定大小的输出数据的函数,转换后的数据称为哈希值。 哈希函数有以下特点:a. 如果根据同一个哈希函数得到的哈希值不同,那么这两个哈希值的原始输入值肯定不同。b. 如果…

2022年7月29日 0条评论 75点热度 0人点赞 risingsun 阅读全文
架构

前后端分离原理

前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。   核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。 在互联网架构中,名词解释: Web服务器:一般指像nginx,apache这类的服务器…

2022年7月21日 0条评论 45点热度 0人点赞 risingsun 阅读全文
架构

微服务简介

  微服务的概念 传统单体大项目的缺点: 系统较大、较复杂,开发难度大 部署速度慢 难以升级、维护   微服务是一种架构风格,将一个大项目拆分为多个小的、独立的微服务(功能单元)。   微服务的特点: 小:微服务是体积较小的功能单元,将一个大项目拆分为多个微服务 独:服务都是独立的,运行在单独的JVM进程中,需要单独部署、维护,服务可以使用不同的编程语言来写,可以使用不同的数据库。每个服务往往都要做集群(节点数视该服务的访问量而定)。 轻:服务之间的通信机制是轻量级的 松:服务之间是松耦合的     微服务的优点:…

2022年7月8日 0条评论 0点热度 0人点赞 risingsun 阅读全文
架构

分布式系统的CAP定理

  CAP定理|理论 在一个分布式系统中, Consistency(数据一致性) Availability(服务可用性) Partition tolerance(分区容错性) 三者不可兼得,最多只能同时满足二点,没法三者兼顾。          一致性(Consistency)   在分布式系统中的所有数据备份,在同一时刻是否具有相同的值(所有节点持有的是否都是同一份最新的数据)。 比如数据库主库写,从库读,用户完成支付再查询订单状态,主库执行写操作把订单状态改为了已支付,从从库查询订单状态时要是已支付,数据是一致…

2022年7月8日 0条评论 30点热度 0人点赞 risingsun 阅读全文
架构

消息中间件简介

  中间件 中间件自然是放在服务|模块之间的,用于处理服务之间的数据交互。 常见的中间件:消息中间件(比如Kafka、RabbitMQ)、缓存中间件(比如Redis)。     消息生产者、消息消费者 比如服务A发消息给服务B,那服务A就是消息生产者(产生消息、发送消息),服务B就是消息消费者(接收消息)。     消息的2种交互方式 peer to peer:即p2p,只有一个接收者。 发布/订阅:可有多个接收者。     消息中间件的作用 模块之间的解耦: 各系统|模块|服务通过消息中间件这个统一的接口来交换数…

2022年7月8日 0条评论 35点热度 0人点赞 risingsun 阅读全文
12345…105
Search

COPYRIGHT © 2022 zhizhesoft. ALL RIGHTS RESERVED.