- 博客(59)
- 收藏
- 关注
原创 熬了7天,总结出来了Java中动态规则的实现方式
背景业务系统在应用过程中,有时候要处理“经常变化”的部分,这部分需求可能是“业务规则”,也可能是“不同的数据处理逻辑”,这部分动态规则的问题,往往需要可配置,并对性能和实时性有一定要求。Java不是解决动态层问题的理想语言,在实践中发现主要有以下几种方式可以实现:表达式语言(expression language) 动态语言(dynamic/script language language),如Groovy 规则引擎(rule engine)表达式语言Java Unified Expr
2020-09-22 19:32:46
647
原创 面试必刷:最有用的Mysql面试题,面试了无数公司总结的
想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里?1. 能说下myisam 和 innodb的区别吗?myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不支持外键,并且索引和数据是分开存储的。innodb是基于聚簇索引建立的,和myisam相反它支持事务、外键,并且通过MVCC来支持高并发,索引和数据存储在一起。2. 说下mysql的索引有哪些吧,聚簇
2020-09-07 20:05:26
325
原创 查询提升200倍,ClickHouse你值得拥有!
一、ClickHouse 是什么?ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)我们首先理清一些基础概念OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统 OLAP:是仓库型数据库,主要是读取数据,做复杂数据分析,侧重技术决策支持,提供直观简单的结果接着我们用图示,来理解一下列式数据库和行式数据库区别在传统的行式数据库系统中(MySQL、Postgres和MS SQL Server),数据按如下顺序存储:
2020-08-24 13:22:23
427
原创 jar包又冲突了?如何快速确定与哪个jar包冲突?
前段时间写代码的时候想借助一下fastjson的Feature.OrderedField来解决json乱序的问题,只需要增加一个参数即可,像下面这样JSON.parseObject("...",Feature.OrderedField),idea检查是没有任何问题的,但是跑单元测试的时候竟然报NoSuchFiledError(找不到Feature.OrderField),我猜测可能是jar包冲突了,所以下一步就是找出到底是和哪个jar包冲突了。解决方法一最开始我以为是mave...
2020-08-20 13:36:22
399
原创 Kafka 节点重启失败导致数据丢失的分析排查与解决之道
背景在 2 月10 号下午大概 1 点半左右,收到用户方反馈,发现日志 kafka 集群 A 主题 的 34 分区选举不了 leader,导致某些消息发送到该分区时,会报如下 no leader 的错误信息:In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes.由于 A 主题 34 分区的
2020-08-14 14:27:30
1893
原创 Kafka 节点重启失败导致数据丢失的分析排查与解决之道
背景在 2 月10 号下午大概 1 点半左右,收到用户方反馈,发现日志 kafka 集群 A 主题 的 34 分区选举不了 leader,导致某些消息发送到该分区时,会报如下 no leader 的错误信息:In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes.由于 A 主题 34 分区的
2020-08-10 19:35:13
972
1
原创 ZooKeeper 定位:能解决什么问题?不能解决什么问题?
ZooKeeper 很流行,有个基本的疑问:ZooKeeper 是用来做什么的? 之前没有ZK,为什么会诞生 ZK?OK,解答一下上面的疑问:(下面是凭直觉说的)ZooKeeper 是用于简化分布式应用开发的,对开发者屏蔽一些分布式应用开发过程中的底层细节 ZooKeeper 对外暴露简单的 API,用于支持分布式应用开发 ZooKeeper 在提供上述功能的同时,其还是一个 高性能、高可用、高可靠的分布式集群上面说这么多,总结一下,ZK 能解决分布式应用开发的问题,ZK 能很好的解决问题
2020-08-04 13:39:14
499
原创 实战:一键生成前后端代码,Mybatis-Plus代码生成器让我舒服了
前言在日常的软件开发中,程序员往往需要花费大量的时间写CRUD,不仅枯燥效率低,而且每个人的代码风格不统一。MyBatis-Plus 代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块及前端页面的代码,极大的提升了开发效率。项目介绍本项目将以springboot用演示,前端使用freemaker,数据库持久层用mybatis(考虑到mybatis的使用还是最普遍的,就没有用jpa和myba
2020-07-31 14:00:23
527
1
原创 用了这么久,token和session的区别,你真的清楚了吗?
session和token都是用来保持会话,功能相同一、session机制,原理session是服务端存储的一个对象,主要用来存储所有访问过该服务端的客户端的用户信息(也可以存储其他信息),从而实现保持用户会话状态。但是服务器重启时,内存会被销毁,存储的用户信息也就消失了。不同的用户访问服务端的时候会在session对象中存储键值对,“键”用来存储开启这个用户信息的“钥匙”,在登录成功后,“钥匙”通过cookie返回给客户端,客户端存储为sessionId记录在cookie中。当客户端.
2020-07-29 14:10:31
678
转载 Kafka 和 RocketMQ 快的飞起,底层存储有什么不同?
都知道 RocketMQ 和 Kafka 消息都是存在磁盘中的,为什么消息存磁盘读写还可以这么快?有没有做了什么优化?都是存磁盘它们两者的实现之间有什么区别么?各自有什么优缺点?今天我们就来一探究竟。存储介质-磁盘一般而言消息中间件的消息都存储在本地文件中,因为从效率来看直接放本地文件是最快的,并且稳定性最高。毕竟要是放类似数据库等第三方存储中的话,就多一个依赖少一份安全,并且还有网络的开销。那对于将消息存入磁盘文件来说一个流程的瓶颈就是磁盘的写入和读取。我们知道磁盘相对而言读写
2020-07-28 14:54:58
682
原创 【Nginx】如何实现Nginx的高可用负载均衡?看完我也会了!!
写在前面不得不说,最近小伙伴们的学习热情是越来越高,不断向冰河提出新的想学习的技术。这不,又有小伙伴问我:冰河,你在【Nginx专题】写的文章基本上都是Nginx单机版的,能不能写一篇关于Nginx的高可用的文章呢?我:没问题,安排上!这不,就有了这篇文章!!Keepalived 简要介绍Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。Keepalived 以
2020-07-27 17:37:20
265
原创 天天CURD,你了解为了执行SQL,MySQL用了怎样的架构设计吗?
大家好, 从今天开始我们开启MySQL底层原理的探索里程,今天是第一篇我们将MySQL从一个黑盒状态一点点拨云见日剖析来了解整个MySQL的架构设计和底层组件把MySQL当作一个黑盒来执行SQL现在我们来看看, 对于研发工程师来说数据库是什么东西?平时我们做系统开发时,一般情况下都会连接到一个MySQL数据库上去,去执行各种增删改查语句。如下图所示:image.png但是实际上我们在使用MySQL的过程中,总会遇到这样那样的一些问题,比如死锁异常、SQL性能太差、MySQL gone a
2020-07-27 15:09:56
266
原创 一文总结:分布式一致性技术是如何演进的?
简介:分布式一致性(Consensus)作为分布式系统的基石,一直都是计算机系统领域的热点。近年来随着分布式系统的规模越来越大,对可用性和一致性的要求越来越高,分布式一致性的应用也越来越广泛。纵观分布式一致性在工业界的应用,从最开始的鼻祖Paxos的一统天下,到横空出世的Raft的流行,再到如今Leaderless的EPaxos开始备受关注,背后的技术是如何演进的?本文将从技术角度探讨分布式一致性在工业界的应用,并从可理解性、可用性、效率和适用场景等几个角度进行对比分析。分布式一致性分布式.
2020-07-24 15:32:15
190
原创 Redis——由分布式锁,造成的一起重大事故
前言基于Redis使用分布式锁在当今已经不是什么新鲜事了。本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案。背景:我们项目中的抢购订单采用的是分布式锁来解决的。有一次,运营做了一个飞天茅台的抢购活动,库存100瓶,但是却超卖了!要知道,这个地球上飞天茅台的稀缺性啊!!!事故定为P0级重大事故...只能坦然接受。整个项目组被扣绩效了~~事故发生后,CTO指名点姓让我带头冲锋来处理,好吧,冲~事故现场经过一番了解后,得知这个抢购活动接口以前从来没有出现过这种...
2020-07-21 16:07:00
243
原创 来了,来了,你们要的Nginx教程来了
一 Nginx简介1.1 什么是NginxNginx 是一个高性能的 http 和反向代理服务器,其特点是占用内存小,并发能力强。 Nginx专为性能优化而开发,性能是其最重要的考量,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。1.2 反向代理正向代理:在浏览器中配置代理服务器,通过代理服务器进行互联网访问。反向代理:将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴漏的是代理服
2020-07-21 16:05:48
254
原创 再见,Visio
提到流程图软件,大部分人想到的就是 Visio。确实,Visio 用的人多,和 office 集成度也很高。但是!!!1、Visio 不属于 Office 套件,需要单独购买;2、很多Mac、Linux 用户无法使用;今天,哈哥就给大家介绍一款堪比 Visio 的流程图软件:diagrams。它可以在线操作,也可以本地安装,还有各种丰富的图标个功能,并且完全免费!完全免费!下面就来感受下。特性多客户端支持网页版没有所谓的客户端支持一说。...
2020-07-15 21:04:07
644
原创 同事线上埋的这个坑,我整整找了3天3夜
对于线上系统调优,它本身是个技术活,不仅需要很强的技术实战能力,很强的问题定位,问题识别,问题排查能力,还需要很丰富的调优能力。本篇文章从实战角度,从问题识别,问题定位,问题分析,提出解决方案,实施解决方案,监控调优后的解决方案和调优后的观察等角度来与大家一起交流分享本次线上高并发调优整个闭环过程。一、项目简要情况概述该项目为基于SSM架构的商城类单体架构项目,其中有一个秒杀重磅模块,如下为当前线上环境的简要架构部署图,大致描述一下:(1)项目为SSM架构(2)服务器类别:1台负载均衡服
2020-07-11 14:10:55
2694
9
原创 你还在用迭代器处理集合吗?试试Stream,真香
首先给大家看一段代码,让大家直观感受下 Java7 和 Java8 遍历处理集合的不同Dish 是一个菜肴对象,calories 属性表示该菜品的卡路里值,name 则是菜品的名称。我们需要过滤出卡路里小于400、然后根据卡路里值升序、接着拿到他们的名称列表并返回Java7publicstaticList<String>getLowCaloricDishesNamesInJava7(List<Dish>dishes){List<Dish>...
2020-07-10 13:45:31
362
原创 MySQL性能优化做得好的人,都懂的索引绝技
一步一步推导出 MySQL索引的底层数据结构。MySQL作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 MySQL数据的存储形式以及索引的设计,决定了 MySQL 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比如下面这个数据表,如果 MySQL 没有实现索引算法,那么查
2020-07-09 14:58:56
198
原创 牛逼!IDEA不愧为神器,结合Groovy脚本,简直天下无敌
# 导语如今, 有许许多多的插件或者编辑器都支持根据数据表自动生成数据实体类了, 比如IDEA, 各种MyBatis的代码生成工具, 等等;本篇介绍一下如何使用IDEA的groovy脚本文件生成带JPA注解的实体类。# 使用IDEA连接数据库注意正式版IDEA才有此功能, 社区版木有 演示图片使用的IDEA版本为2018.3, 不同版本界面可能有细小差别1、创建新的数据连接如果没有, 可以上方菜单栏: 视图-工具窗口-Database打开(新建Oracle数据库也是相同操作)。
2020-07-01 13:52:58
448
1
原创 后端程序员必备:SQL高性能优化指南!35+条优化建议立马GET
由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下:SQL 的书写规范 SQL 的一些进阶使用技巧 SQL 的优化方法其他相关阅读:后端程序员必备:书写高质量SQL的30条建议 MySQL高性能优化规范建议,速度收藏SQL 的书写规范在介绍一些技巧之前,有必要强调一下规范,这一点我发现工作中经常被人忽略,其实遵循好的规范可读性会好很多,应该遵循哪些规范呢1、 表明
2020-06-29 14:00:48
376
原创 答应我,别再if/else走天下了可以吗
想当年,其实我也特别钟情于 if/else连环写法,上来就是一顿SAO操作,比如举个好理解的简单栗子:一般来说我们正常的后台管理系统都有所谓的角色的概念,不同管理员权限不一样,能够行使的操作也不一样,比如:系统管理员( ROLE_ROOT_ADMIN):有 A操作权限订单管理员( ROLE_ORDER_ADMIN):有 B操作权限普通用户( ROLE_NORMAL):有 C操作权限比如一个用户进来,我们需要根据不同用户的角色来判断其有哪些行为,这时候SAO代码出现了:publ.
2020-06-28 16:25:14
223
原创 Tomcat 又爆出高危漏洞!Tomcat 8.5 ~ 10 中招…
开源界最近很热闹啊,各个主流软件或框架漏洞频发,比如像 Struts2、FastJSON、Dubbo、Redis、Tomcat 等都存在各种各样的漏洞。不要使用含有漏洞的组件每次也都被评为 OWASP 10 大安全漏洞之一。光这半年以来,所知道的就有 Dubbo、FastJSON、Tomcat:前段时间这个 Tomcat AJP 协议漏洞大开,2020/06/25 这天 Tomcat 又爆出 HTTP/2 拒绝服务漏洞:http://mail-archives.apache.org/mod
2020-06-27 17:08:06
2731
原创 Soul网关发布全新架构V2.2.0,让高性能网关变得如此简单
我们还是先来看看新增功能,然后再讲故事。完全的插件化架构设计,插件热插拔。 完整支持dubbo所有版本,alibaba-dubbo ,apache-dubbo。 支持dubbo泛化调用,多参数,复杂参数接口。 增强monitor插件,移除influxdb支持,新增内存,CPU,QPS,TPS,响应迟延等metrics,支持接入Prometheus。 springCloud插件支持eureka与nacos二种注册中心。 waf插件增强,支持黑白名单,以及混合模式。 抽离Hystrix熔断功能,
2020-06-20 14:34:37
1303
原创 可怕!你没看错,这次确实是纯手工实现一个MyBatis框架
目录 前言 JDBC MyBatis 源码分析 前置知识 原理分析 自己实现一个 MyBatis 框架 # 前言MyBatis 是一个非常优秀的持久层应用框架,目前几乎已经一统天下。既然是持久层框架,那么一定是对于数据库的操作,Java 中谈到数据库操作,一定少不了 JDBC。那么 ,MyBatis 比传统的 JDBC 好在哪那?MyBatis 又在哪方面做了优化呢?# JDBC如果我们需要查询所有用户,传统的 JDBC 会这
2020-06-19 15:57:34
325
原创 Git 入门看这一篇就够了!程序员防被diss必会技能走一波
今天简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。如果觉得不错的话,一定要点个关注哦本文的结构如下:作者和开发原由 Git 的数据模型 常用命令 资源推荐作者和开发原由Talk is cheap. Show me the code.这句话就出自 Linux 和 Git 的作者Linus Torvalds。原本 Linux 内核的版本控制系统是用的 BitKeeper,然而 2005 年,BitMover 公司
2020-06-18 14:53:58
1177
原创 优秀的代码千篇一律,恶心的代码各有千秋,一些让人恶心的代码片段
1、下面一段代码将注释和代码混在了一起,不认真看还真不知道。高亮显示后:2、看到这种多层嵌套恶心到头大3、据说某俄国特工经过九死一生偷到了NASA的太空火箭发射程序的源代码的最后一页,代码是:))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))...
2020-06-16 15:35:03
559
转载 天天唠叨的MySQL优化,阿里P8架构师告诉你到底该怎么玩?
说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用 SELECT*、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。阿里P8架构师谈(数据库系列):那些年,你未曾了解的MySQL慢查询优化、索引优化、以及表等优化总结:https://www.bilibili.com/vid
2020-06-12 14:42:01
457
原创 让你彻底了解 Java 8 的 Lambda、函数式接口、Stream 用法和原理
就在今年 Java 25周岁了,可能比在座的各位中的一些少年年龄还大,但令人遗憾的是,竟然没有我大,不禁感叹,Java 还是太小了。(难道我会说是因为我老了?)而就在上个月,Java 15 的试验版悄悄发布了,但是在 Java 界一直有个神秘现象,那就是「你发你发任你发,我的最爱 Java 8」.据 Snyk 和 The Java Magazine 联合推出发布的 2020 JVM 生态调查报告显示,在所有的 Java 版本中,仍然有 64% 的开发者使用 Java 8。另外一些开发者可能.
2020-06-11 17:01:12
350
原创 造了一个 Redis 分布锁的轮子,没想到还学到这么多东西
这次我们举得实际一点,假设id=1,balance=1000,不过这次我们扣款1000,两个事务的时序图如下:炸天的分布式,redis、zk、kafka、hbase,横扫一切关于Redis的问题:https://www.bilibili.com/video/BV13z411b7mU这次使用两个命令窗口真实执行一把:注意事项 2,③处查询到id=1,balance=1000,但是实际上由于此时事务 1 已经提交,最新结果如②处所示id=1,balance=900。本来 J...
2020-06-11 16:22:16
261
原创 看完这篇Redis缓存三大问题,保你能和面试官互扯。
Redis推荐阅读:https://www.bilibili.com/video/BV13z411b7mU日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度问题有严重的性能弊端,详细的磁盘读写原理请参考这一片[]。在这一瞬间成千上万的请求到来,需要系统在极短...
2020-06-10 16:39:31
351
原创 数据库和缓存一致性的几种实现方式,我们来聊聊?
缓存是互联网高并发系统里常用的组件,由于多增加了一层,如果没有正确的使用效果可能适得其反,诸如“缓存是删除还是更新?”,“先操作数据库还是先操作缓存?”都是些老生常谈的话题,今天我们就来聊一聊缓存与数据库的双写一致性的解决方案。Cache Aside Pattern在一开始先科普下最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。 更新的时候,先更新数据库,然后再删除缓存。推.
2020-06-10 16:31:55
304
原创 没了 IDE,你的 Java 项目还能 Run 起来吗?
计算机智能识别机器码0101...编程语言->能执行的机器码 需要经过 预处理->编译->汇编->链接->机器码 过程。一个语言处理系统的示意图如下:编译器是将源语言程序一次性翻译成一个等价的,用目标语言编写的程序。还存在另一种常见的语言处理器,解释器:它是逐个语句的执行源语言程序。由一个编译器产生的目标语言程序通常比一个解释器快,但解释器的错误诊断效果通常更好。Java语言处理器结合了编译和解释的过程。一个 .Java 源程序首先被编译为 .cl...
2020-06-09 14:22:10
960
原创 被面试官问懵B了,十亿级数据ES搜索怎么优化?
面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个问题容易懵逼,显示出你对
2020-06-09 13:19:51
302
原创 新手常犯的错,阿里规定代码中禁用这个,为何?
image在项目开发过程中经常遇到时间处理,但你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗?通过阅读本篇文章你将了解到:为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】 java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改为什么需要LocalDate、LocalTime、LocalDateTime1.Date如果不格式化,打印出的日期可读性差Tue Sep...
2020-06-08 14:52:31
316
原创 try catch 有多烦人,我就有多暴躁!一次搞定 Exception
背景软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的try {...} catch {...} finally {...}代码块,不仅有大量的冗余代码,而且还影响代码的可读性。比较下面两张图,看看您现在编写的代码属于哪一种风格?然后哪种编码风格您更喜欢?丑陋的 try catch 代码块优雅的Controller上面的示例,还只是在Controller层,如果是在Service层,可能会有更多的try catc.
2020-06-05 15:00:01
387
原创 避免被diss,务必记住这些正确打日志的方式
使用slf4j使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 实现方式统一使用: Logback框架打日志的正确方式什么时候应该打日志定位问题:当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定位的。 执行逻辑判断:当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支 功能执行流程:经常以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看...
2020-06-04 15:25:12
417
原创 干掉 Date,Java8 LocalDate 简直不能贼香,赶紧来艿一口
简介伴随 lambda表达式、streams 以及一系列小优化,Java 8 推出了全新的日期时间API。Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。然后就在 java8 上面增加新的特性。全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant)、 长短(duration)、日期、时间、时区和周期。同时继承了Joda 库按人类语言和计算机各自解析的时间处理
2020-05-30 15:18:23
382
原创 同样是服务注册中心,Eureka凭什么比ZooKeeper优秀?
1. 前言服务注册中心,给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件,例如rocketmq的name server,hdfs中的namenode,dubbo中的zk注册中心,spring cloud中的服务注册中心eureka。在spring cloud中,除了可以使用eureka作为注册中心外,还可以通过配置的方式使用zookeeper作为注册中心。既然这...
2020-05-29 16:21:48
393
原创 一睹微服务架构世界:阿里P9资深技术专家精心整理的微服务系统架构设计手册
近几年,微服务架构在大量技术社区迅速蹿红,被认为是 IT 软件架构的未来方向。一线互联网公司由于具有大量的业务体量和业务场景,比如阿里、百度、网易,很早就开始入坑微服务架构。随着云端办公以来,发现微服务越来越重要了。Docker 容器技术和自动化运维等相关技术发展,使微服务变得更容易维护。大家可能都注意到,像阿里、腾讯、字节跳动等大厂的后端岗位明确写出:微服务设计经验优先。如果没有这方面的准备的话,想拿到高薪可不容易。再者,微服务在技术面试的时候多有提及,尤其对于头部互联网企业,微服务架构更是必备的
2020-05-28 16:21:43
725
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人