java
文章平均质量分 86
Java-进阶架构师
分享Java干货知识
展开
-
超越 Nginx,号称下一代 Web 服务器,用起来够优雅
Nginx是一款非常流行的Web服务器,在Github上已有16K+Star,我们经常用它来做静态资源托管或反向代理。最近发现了一款全新的Web服务器Caddy,Star数超越Nginx,标星38K+Star。试用了一下Caddy,发现它使用起来比Nginx优雅多了,功能也很强大,推荐给大家!Caddy简介Caddy是一款功能强大,扩展性高的Web服务器,目前在Github上已有38K+Star。Caddy采用Go语言编写,可用于静态资源托管和反向代理。Caddy具有如下主要特性:.原创 2022-05-27 16:34:38 · 281 阅读 · 0 评论 -
从GitHub火到头条,共计1658页的Java岗面试核心MCA版,拿走不谢
2019年10月16日,我凭借一份《Java面试核心知识点》成功拿下了阿里、字节、小米等大厂的offer,两年的时间,为了完成我给自己立的flag(拿下一线互联网企业offer大满贯),即使在职也一直在不断的学习与备战面试中!不得不说程序员除了做项目之外,提升自己技能最快的方式就是【看书!】和【刷题!】,这里说的刷题不是无脑刷,而是要明白面试官为什么会问这个问题,以及这个问题的意义在哪里!今天带来的是2021全新升级的《Java岗面试核心MCA版》,这个版本里面不仅仅包含了面试题,还有更多的原创 2022-05-27 16:33:04 · 668 阅读 · 0 评论 -
微服务注册中心技术选型:5种主流注册中心,哪个最香?
讲解5种常用的注册中心,对比其流程和原理,无论是面试还是技术选型,都非常有帮助。对于注册中心,在写这篇文章前,我其实只对ETCD有比较深入的了解,但是对于Zookeeper和其它的注册中心了解甚少,甚至都没有考虑过ETCD和Zookeeper是否适合作为注册中心。经过近2周的学习,原来注册中心除了ETCD和Zookeeper,常用的还有Eureka、Nacos、Consul,下面我们就对这些常用的注册中心,初探它们的异同,便于后续技术选型。全文接近8千字,有点长,建议先收藏,再慢慢看,下..原创 2022-05-27 16:28:41 · 621 阅读 · 0 评论 -
推荐一款管理系统专用低代码工具,一天开发一个系统不是梦
Yao简介Yao是一款Go语言驱动的低代码应用引擎,目前在Github上已有3.8k+Star!使用该框架,你可以通过JSON完成90%的接口和页面开发,用来开发管理系统正合适!Yao的名字源于汉字爻(yáo),是构成八卦的基本符号,看样子作者对八卦还是挺有研究的。下面使用使用Yao开发的界面效果图,暗黑风格,还是挺炫酷的!安裝使用Docker来安装Yao是非常方便的,下面我们就采用此种方式在Linux上安装它!首先下载Yao的Docker镜像;docker pu原创 2022-05-27 16:23:47 · 197 阅读 · 0 评论 -
太极限了,JDK的这个BUG都能被我踩到
之前遇到个文件监听变更的问题,刚好这周末有空研究了一番,整理出来分享给大家。从一次故障说起我们还是从故障说起,这样更加贴近实际,也能让大家更快速理解背景。有一个下发配置的服务,这个配置服务的实现有点特殊,服务端下发配置到各个服务的本地文件,当然中间经过了一个agent,如果没有agent也就无法写本地文件,然后由client端的程序监听这个配置文件,一旦文件有变更,就重新加载配置,画个架构图大概是这样:今天的重点是文件的变更该如何监听(watch),我们当时的实现非常简单:单独起原创 2022-05-27 16:22:48 · 110 阅读 · 0 评论 -
直击面试,阿里技术官手码12W字面试小册在Github上爆火
Java面试临近金三银四,想必有不少老哥已经在为面试做准备了。大家想必也知道现在面试就是看项目经验+基本技术+个人潜力(也就是值不值得培养)。总之就是每一次面试都是对我们能力的检验(无论是软实力还是硬实力)。软实力其实就是简历包装,自我介绍,与面试官交谈技巧等等;所谓硬实力就是我们所掌握的技术情况了。所以每次面试之前需要做好充分的准备,切不可临时抱佛脚。技术基础打好后,面试前算题巩固也是必不可少的!借此机会,LZ为大家带来了一份近期在Github上爆火的阿里面试小册。小册分别从软实力跟硬实力两方面入原创 2022-05-26 19:23:40 · 118 阅读 · 0 评论 -
Spring boot集成plumelog日志系统
近几日闲来无事,工作摸鱼之时在码云上发现一个更加轻量级的分布式日志系统 PlumeLog ,就研究了一下,写了一个demo,做个记录一、PlumeLog简介无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志 基于elasticsearch作为查询引擎 高吞吐,查询效率高 全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目本身运行 无需修改老项目,引入直接使用,支持dubbo,支持springcloud二、准备工作服务原创 2022-05-26 19:19:43 · 1029 阅读 · 0 评论 -
灵魂一问:一个Java文件的执行全部过程你确定都清楚吗?
平时我们都使用 idea、eclipse 等软件来编写代码,在编写完之后直接点击运行就可以启动程序了,那么这个过程是怎么样的?总体过程我们编写的 java 文件在由编译器编译后会生成对应的 class 字节码文件, 然后再将 class 字节码文件转给 JVM 。 JVM 会处理解析 class 文件,将其内部设置的类、方法、常量等信息全部提取出来,然后找到 main 方法开始一步一步编译成机器码并执行,中间会根据需要调用前面提取的数据。那为什么不让 JVM 直接编译 java 文件呢?原创 2022-05-26 19:18:08 · 158 阅读 · 0 评论 -
HUAWEI内网最新发布了一份452页网络协议手册,GitHb百万收藏
网络协议网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议作为当下久经不衰的话题,如果你经常看一些CSDN,GitHub,开源中国等较大的程序员网站就可以发现 相关于网络协议的博文非常之多!想要学习网络协议就绕不开它的组成要素:语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。 语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。 时序。时序是对事件发生顺序的详细说明。(也可称为“同步”)。人们形原创 2022-05-26 19:14:34 · 161 阅读 · 0 评论 -
同事因多线程使用不当导致OOM,被领导怼了一顿
# 目录事故描述 整体经过 事故根本原因 探讨问题的根源 总结# 事故描述老规矩,我们先看下事故过程:某日,从 6 点 32 分开始少量用户访问 app 时会出现首页访问异常,到 7 点 20 分首页服务大规模不可用,7 点 36 分问题解决。# 整体经过事故的整个经过如下:6:58,发现报警,同时发现群里反馈首页出现网络繁忙,考虑到前几日晚上门店列表服务上线发布过,所以考虑回滚代码紧急处理问题。 7:07,开始先后联系 XXX 查看解决问题。 7:36,代原创 2022-05-26 15:38:54 · 134 阅读 · 0 评论 -
涨姿势了,原来这才是多线程正确实现方式
Java内存模型线程同步线程同步机制是一套适用于协调线程之间的数据访问机制,该机制可以保障线程安全java平台提供的线程同步机制包括:锁、volatile关键字、final关键字,static关键字、以及相关API如object.wait/object.notify锁概述线程安全问题的产生前提是多个线程并发访问共享数据,将多个数据对共享数据的并发访问,转化为串行访问,即共享数据只能被一个线程访问,锁就是这种思路。线程访问数据时必须先获得锁,获得锁的线程称为锁的持有线程原创 2022-05-26 15:37:14 · 119 阅读 · 0 评论 -
一款跨时代的高性能 Java 框架,启动速度快到飞起
Quarkus:云原生时代高性能 Java 框架Quarkus(夸克斯) 是 RedHat 在 2018 年开源的一款专为云原生开发设计的 Java 框架,与 Kubernetes 紧密结合,可以提高构建微服务、无服务和基于云的应用程序的开发效率。Quarkus 的启动速度非常快(为 GraalVM 量身定制),可以很方便集成 Docker 和 Kubernetes 。目前,Quarkus 项目的提交已经接近 3w+,从提交看得出来维护的非常频繁。我个人还是非常看好这个项目的,绝对是云原原创 2022-05-21 20:22:44 · 1769 阅读 · 0 评论 -
通过代码解释什么是API,什么是SDK?
这个问题说来惭愧,读书时找实习面的第一家公司,问的第一个问题就是这个。当时我没能说清楚,回去之后就上百度查。结果查了很久还是看不懂,然后就把这个问题搁置了。谁知道毕业正式工作后,又再一次地面对了这个问题......(事实告诉我们,欠的知识债总是要还的)现在回过头想,我能明白自己为啥想不通这个问题:没用过 SDK 思维只停留在前后端 API 接口交互所以想要弄清楚这个问题,看别人写的概念解释文章可能帮助不大,还是得自己亲手设计一下 API,使用或简单封装一个 SDK。下面,我尝试设计一原创 2022-05-21 20:21:03 · 127 阅读 · 0 评论 -
炸锅了,Java多线程批量操作,居然有人不做事务控制?
项目代码基于:MySql 数据,开发框架为:SpringBoot、Mybatis开发语言为:Java8项目代码:https://gitee.com/john273766764/springboot-mybatis-threads文章目录前言 循环操作的代码 使用手动事务的操作代码 尝试多线程进行数据修改 基于两个CountDownLatch控制多线程事务提交 基于TransactionStatus集合来控制多线程事务提交 使用union连接多个select实现批量update原创 2022-05-21 20:20:03 · 198 阅读 · 0 评论 -
换掉 UUID,NanoID 更快、更短、更安全
UUID 是软件开发中最常用的通用标识符之一。然而,在过去的几年里,其他的竞品挑战了它的存在。其中,NanoID 是 UUID 的主要竞争对手之一。因此,在本文中,我们将展开讨论 NanoID 的功能、它的亮点以及它的局限性,以便让我们更好地了解何时使用它。NanoID的特点1. NanoID 只有 108 个字节那么大与 UUID 不同,NanoID 的大小要小 4.5 倍,并且没有任何依赖关系。此外,大小限制已用于将大小从另外 35% 减小。大小减少直接影响数据的大.原创 2022-05-20 21:39:49 · 657 阅读 · 1 评论 -
相信我,使用 Stream 真的可以让代码更优雅
前言虽然 stream在 Java8 中就已经被引入,但是大多数人却没有去使用这个十分有用的特性,本文就通过介绍几个通过使用stream让代码更简洁、可读,来让你了解stream的方便之处。技巧数组转集合相信经常刷LeetCode的小伙伴,偶尔会遇到需要将List与基本类型数组进行互转的情况,然后就需要写像下面这样的代码:// 将 List 元素存储到数组中List<Integer> list = new ArrayList<>(Arrays.asList(1原创 2022-05-20 20:23:01 · 493 阅读 · 1 评论 -
全网的 IP 归属地显示,带你5分钟加上,就是这么简单
最近,继新浪微博之后,今日头条、腾讯、抖音、知乎、快手、小红书、百家号等各大平台陆陆续续都上线了"网络用户IP地址显示功能",境外用户显示的是国家,国内的用户显示的省份,而且此项显示无法关闭,归属地强制显示;作为技术人,那!这个功能要怎么实现呢?其实要想实现这个功能还是非常的容易,基于现成 GeoLite2离线库+免费的在线解析资源,5分钟就能整合了;在整合之前,我们先简单了解一下,要想拿到用户的位置信息,有那些方式:终端定位我们的手机等电子设备都是带有GPS定位功能的,APP可以申请权原创 2022-05-20 20:20:51 · 1029 阅读 · 0 评论 -
MySQL中B+树的一道面试题,90%的候选人回答错误
前言本文的观点是基于MySQL使用Innodb存储引擎的情况下进行的!本文的观点是基于MySQL使用Innodb存储引擎的情况下进行的! 很多渠道说:MySQL数据按照主键大小依次排列,记录之间是双向链表连起来。如果说我告诉你这种说法很大程度上是错的,你肯定说我在胡扯。正文我们先看看MySQL的B+树索引结构是什么样的是的,这种图和网上的很多图都是类似的,我们可以看到每个节点上会有多个记录或者数据,MySQL使用Innob引擎时,这个节点就代表的是Innodb页,Innodb页是原创 2022-05-20 20:19:33 · 1431 阅读 · 1 评论 -
你敢信?开发一个管理系统我只用了两天
难度分析虽然但是听到这个消息的时候,内心还是挺震惊的,毕竟是一个完整的管理系统,功能界面还不能太过简陋。而且从数据库设计到整个系统的交付全由自己一人完成,挑战效果直接拉满!但是冷静下来思考一下,其实也并不是很难,整体的项目流程即为:设计——>文档——>编码——>交付。整体的流程划清之后,就开始一步步从无到有的实现,没想到到最后一步的时候,我竟然才用一天半的时间!!后面又用了半天的时间对整体的项目做了一个优化处理!项目回顾最终效果演示:技术选型:SpringBoo原创 2022-05-10 21:01:29 · 159 阅读 · 0 评论 -
互联网码农必备技能,Netty进阶篇,Netty核心组件详解
前言上一次文章我们主要讲了一些模型框架,最后引出了Netty的框架结构,Netty 主要基于主从 Reactor多线程模型做了⼀定的改进,主从 Reactor 多线程模型有多个 Reactor,如下图:今天会带在大家一起学习上述架构中的一些核心组件,废话不多说了,下面我们进入正题。Bootstrap、ServerBootstrapBootstrap是引导,⼀个Netty应⽤通常由⼀个Bootstrap开始,主要作⽤是配置Netty程序,采用链式编程模式,串联Netty各个组件。原创 2022-04-22 20:52:06 · 632 阅读 · 0 评论 -
阿里新丰碑,周志明《凤凰架构》,全面构建可靠大型分布式系统
文前白话从大型机到单体架构,从微服务架构到无服务架构,每一次架构模式的演进都是一次涅槃。每一个软件系统都是由大量服务构成的生态体系,个体服务的“死亡”和“重生”是整个系统能否持续可靠运行的关键因素。本书从5个方面全面剖析了如何构建一个可靠的分布式系统,同时给出了Spring Boot、Spring Cloud、Kubernetes、Istio、AWS Lambda五种架构风格的样例工程。由5个维度全面探索如何构建可靠的大型分布式系统:从架构演进 架构设计思维 分布式基石 不可变原创 2022-04-22 20:50:12 · 1544 阅读 · 0 评论 -
互联网公司都喜欢的消息队列,阿里Rocket MQ详细介绍
Rocket MQ 的前世与今生RocketMQ是⼀款阿⾥巴巴开源的消息中间件,在2017年9⽉份成为Apache的顶级项⽬,是国内⾸个互联⽹中间件在 Apache 上的顶级项⽬。RocketMQ经历了4个大阶段(如上图):阶段1:Metaq(Metamorphosis) 1.x 由开源社区 killme2008 维护,最后⼀次更新是在2017年1⽉份。阶段2:Metaq 2.x 于 2012 年 10 ⽉份上线,在淘宝内部被⼴泛使⽤。阶段3:RocketMQ 3.x 基于阿⾥内原创 2022-04-22 20:44:48 · 2551 阅读 · 0 评论 -
淦,做一个短链接系统需要考虑这么多
你如果平时有注意的话,各种商业短信上的链接也是会转成特别短的:这个特别短的URL就是短链接。为什么需要URL短链接URL短链接用于为长URL创建较短的别名,我们称这些缩短的别名为“短链接”;当用户点击这些短链接时,会被重定向到原始URL;短链接在显示、打印、发送消息时可节省大量空间。例如,如果我们通过sourl缩短以下URL:juejin.cn/user/211951…我们可以得到一个短链接:sourl.cn/R99fbj缩短的URL几乎是实际URL大小的三分原创 2022-04-21 17:18:31 · 171 阅读 · 0 评论 -
面试官问我JVM调优,我忍不住了
面试官:今天要不来聊聊JVM调优相关的吧?面试官:你曾经在生产环境下有过调优JVM的经历吗?候选者:没有面试官:...候选者:嗯...是这样的,我们一般优化系统的思路是这样的候选者:1. 一般来说关系型数据库是先到瓶颈,首先排查是否为数据库的问题候选者:(这个过程中就需要评估自己建的索引是否合理、是否需要引入分布式缓存、是否需要分库分表等等)候选者:2. 然后,我们会考虑是否需要扩容(横向和纵向都会考虑)候选者:(这个过程中我们会怀疑是系统的压力过大或者是系统的硬件能力不足导原创 2022-04-21 17:13:55 · 103 阅读 · 0 评论 -
比 Elasticsearch 更快,RediSearch + RedisJSON = 王炸
Redis是开发中非常常用的内存数据存储中间件,之前基本上用它来做内存存储使用。最近发现Redis推出了很多增强模块,例如通过RedisJSON可以支持原生JSON对象的存储,使用RediSearch可以作为搜索引擎使用,并且支持中文搜索!今天给大家带来RediSearch+RedisJSON作为搜索引擎的使用实践,希望对大家有所帮助!RedisMod简介首先介绍下RedisMod这个东西,它是一系列Redis的增强模块。有了RedisMod的支持,Redis的功能将变得非常强大。目前RedisMo原创 2022-04-21 17:09:47 · 288 阅读 · 0 评论 -
每分钟54万多条数据更新,商品系统性能如何优化?
背景介绍2020年6月,商品系统从SAP、中间层等接入的商品数据越来越多且更新频繁,商品数据库主从更新数据量大,约每分钟54万多条更新,约八分钟就会产生大于1G的Binlog文件,在数据库IO能力一定的情况下,发生数据同步延迟,影响写入与读出的及时性,进而影响到商品基础系统的可用性。如果仅是从翻阅代码的角度去分析,会花费大量人力。抛开系统本身,当商品多个应用都在读写商品库,并在数据库层起到数据汇总和集中反馈的情况下,分析这个点是一个较好的方向。分析模型把Binlog解析成Sql 纯文本,解析原创 2022-04-21 16:02:36 · 571 阅读 · 0 评论 -
翠花一把王者的时间,我就学会了Nginx
我的室友翠花是个貌美如花的大闺女,这不是放假,大家都在宿舍幻想未来,只有翠花在睡觉,突然,翠花原地炸起,说了一句:“我要学习Nginx!!!”大家一脸茫然的看着翠花,Nginx?Nginx是什么?我赶紧上网查了一下。Nginx("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、 淘宝等。。我的天,这么厉害?我这么爱学原创 2022-04-21 16:01:33 · 111 阅读 · 0 评论 -
阿里三面:什么是循环依赖?你说一下Spring解决循环依赖的流程
Spring循环依赖的原理解析1、什么是循环依赖?# 我们使用Spring的时候,在一个对象中注入另一个对象,但是另外的一个对象中也包含该对象。如图:在Student中包含了teacher的一个属性;在Teacher中包含有student的属性。这样就形成了一个循环依赖。2、代码描述#xml配置文件testCycle.java private static void testCycle(){ ClassPathXmlApplicationCon原创 2022-04-20 15:41:26 · 110 阅读 · 0 评论 -
字节二面:小伙子你来说下什么是伪共享?如何避免?
周末的时候,有个读者跟我说,面试字节的时候被问到:「什么是伪共享?又该怎么避免伪共享的问题?」这个其实是考察 CPU 缓存的问题,我之前的图解系统也有提到过。今天,我再跟大家讲一下。正文CPU 如何读写数据的?先来认识 CPU 的架构,只有理解了 CPU 的 架构,才能更好地理解 CPU 是如何读写数据的,对于现代 CPU 的架构图如下:可以看到,一个 CPU 里通常会有多个 CPU 核心是,比如上图中的 1 号和 2 号 CPU 核心,并且每个 CPU 核心都有自己的 L1原创 2022-04-20 15:39:41 · 122 阅读 · 0 评论 -
沉浸式体验Mybatis-Plus,真香
写在前面MyBatis 的增强方案确实有不少,甚至有种感觉是现在如果只用 “裸MyBatis”,不来点增强插件都不好意思了。前两天尝试了一下 MyBatis Generator。这次来点更加先进的 Mybatis-Plus,SQL语句都不用写了,分页也是自动完成,嗯,真香!数据库准备CREATE TABLE tbl_user( user_id BIGINT(20) NOT NULL COMMENT '主键ID', user_name VARCHAR(30) NULL DEFA原创 2022-04-19 21:21:31 · 118 阅读 · 0 评论 -
Redis 官方可视化工具,功能真的强大
一、RedisInsight 简介RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持):https://docs.redis.com/latest/ri/RedisInsight 提供的功能:唯一支持 Redis Cluster 的 GUI 工具; 可以基于 Browser 的界原创 2022-04-19 21:20:28 · 91 阅读 · 0 评论 -
职场败犬在星巴克梳理了10大经典排序算法(动图+代码)
前些时间看人世间周秉昆辞去木材厂工作后天天骑个单车在外面瞎转还有些不能理解,然而戏如人生、人生如戏。我今天已经开车在外面逛了半天了,“毕业”的事还没跟家里说,现在找了个星巴克坐着,闲着也是闲着,不如来梳理一下自身所学,毕竟也难得有此机会。以前也零零碎碎发过一些排序算法,但排版都不太好,这次重新整理一次,排序算法是数据结构的重要部分,面试必问,系统地学习很有必要!我最近也在看新的机会,已经有些年没有面试过了,得把基础的东西都捡起来,希望能与大家共同进步!时间、空间复杂度比较 排序算法原创 2022-04-19 21:13:08 · 182 阅读 · 0 评论 -
实践应用:前后端分离的接口规范,我们是如何做的?
职责分离前后端仅仅通过异步接口来编程 前后端都各自有自己的开发流程,构建工具,测试集合 关注点分离,前后端变得相对独立并松耦合开发流程后端编写和维护接口文档,在 API 变化时更新接口文档 后端根据接口文档进行接口开发 前端根据接口文档进行开发 + Mock平台 开发完成后联调和提交测试Mock 服务器根据接口文档自动生成 Mock 数据,实现了接口文档即API:关于Mock数据有哪些好的平台和工具,这在前文《前后端都分离了,该搞个好用的API管理系统了!》原创 2022-04-19 21:12:03 · 166 阅读 · 0 评论 -
不服不行啊, SpringCloud集成Dubbo给一次性讲透了
Spring Cloud集成Dubbo目前Dubbo在国内还是有较多公司在使用的,一方面是因为Dubbo作为阿里巴巴开源的一个SOA服务治理解决方案,在国内发展较早,有比较好的先发优势;另一方面是因为在国内很多工程师对Dubbo框架都比较熟悉,有比较完善的文档介绍和实例;还有,Dubbo框架的性能优势和基于SPI的扩展机制也是Dubbo的优势所在。然而,现在很多人也拿Dubbo与Spring Cloud做比较,其实Dubbo本质上是一个RPC框架,实现了SOA架构下的微服务治理,而Sprin原创 2022-04-18 21:22:08 · 3127 阅读 · 0 评论 -
三天三夜总算是搞懂了RPC远程过程调用,SpringCloud集成gRPC
Spring Cloud集成gRPCgRPC本身的跨平台特性及性能上的优势都促使很多大公司采用gRPC的RPC解决方案作为微服务交互的标准交互集成方式。到目前为止,Spring Cloud官方并没有支持gRPC,但是在GitHub上有非常多的第三方开源项目支持gRPC与Spring Cloud的集成,start数 目 最 多 的 开 源 项 目 是 grpc-spring-boot-starter 。 该 项 目 也 是Spring Cloud社区推荐的gRPC项目。下面是这个项目的主要特性:●原创 2022-04-18 21:20:46 · 240 阅读 · 0 评论 -
新年新篇章,技术接着上,细品REST服务集成,JAX-RS提供REST服务
JAX-RS提供REST服务如果你更喜欢JAX-RS为REST端点提供的编程模型,你可以使用相应 的 实 现 代 替 Spring MVC 框 架 。 Spring Boot 支 持 Jersey1.x 和Jersey2.x,我们这里只介绍Spring Boot对Jersey2.x的支持。首先,引入Spring Boot针对Jersey的starter包:<dependency><groupId>org.springframework.boot</gro原创 2022-04-14 22:21:43 · 476 阅读 · 0 评论 -
程序员2022年你不懂RPC远程过程调用,RPC框架的话真的要被淘汰了
程序员2022年你不懂RPC远程过程调用,RPC框架的话真的要被淘汰了2022-02-22 19:25·程序员高级码农II在微服务架构中,使用RPC(Remote Procedure Call)进行服务之间的交互是我们通常采用的一种集成方式,与REST方式的请求调用模式相比,RPC具有更强的契约规范(Schema),同时相比REST方式也有更好的性能优势。RPC框架概述RPC是一种进程间通信方式,可以像调用本地服务一样调用远程服务。RPC的核心并不在于使用什么协议,RPC的主要目标是让远程服原创 2022-04-14 22:05:20 · 344 阅读 · 0 评论 -
看技术专家是如何一次性把RPC远程过程调用,Dubbo架构进阶给讲清的
Dubbo架构进阶Dubbo架构主要包含四个角色:消费者、提供者、注册中心和监控系统,如下图所示。具体的交互流程是:消费者(Consumer)通过注册中心获取提供者(Provider)节点后,通过Dubbo的客户端SDK与Provider建立连接,并发起调用。Provider通过Dubbo的服务端SDK接收Consumer的请求,处理后再把结果返回给Consumer。对于采用Dubbo进行RPC调用的解决方案,消费者和提供者都需要引入Dubbo的SDK来完成远程调用。因为Dubbo本身是原创 2022-04-14 22:00:04 · 138 阅读 · 0 评论 -
三天三夜总算是搞懂了RPC远程过程调用,SpringCloud集成gRPC
Spring Cloud集成gRPCgRPC本身的跨平台特性及性能上的优势都促使很多大公司采用gRPC的RPC解决方案作为微服务交互的标准交互集成方式。到目前为止,Spring Cloud官方并没有支持gRPC,但是在GitHub上有非常多的第三方开源项目支持gRPC与Spring Cloud的集成,start数 目 最 多 的 开 源 项 目 是 grpc-spring-boot-starter 。 该 项 目 也 是Spring Cloud社区推荐的gRPC项目。下面是这个项目的主要特性:●原创 2022-04-14 21:58:31 · 233 阅读 · 0 评论 -
从没有人能把MOM异步通信,消息中间件,消息队列?给一次性讲清
MOM异步通信在微服务架构中,使用REST和RPC的方式最大的问题就是请求/响应模式的通信模式可能导致服务之间调用的可用性降低,客户端与服务端需要同时在线,双方都需要知道对方的URL地址,或者服务消费者需要通过某种发现机制来定位服务实例的地址。MOM(Message Oriented Middleware)是面向消息的中间件,使用消息提供者来协调消息传送操作。这种松耦合的通信机制有助于降低客户端和远程服务之间的依赖性。消息中间件概述消息中间件通常也被称为消息队列,是系统内部通信的核心原创 2022-04-14 21:57:31 · 1586 阅读 · 0 评论