Java之微服务简单上手系列
文章平均质量分 95
这是一个让你初步了解微服务并能简单上手的专栏,里面用大量的篇幅和应用案例想你讲解了微服务的架构和各个模块如何工作,如何协作,不仅全面,而且系统。相信你学完之后一定能快速上手微服务。
CodingFire
从移动端到跨平台,从跨平台到Java,学习是一件让人开心的事,也是一件孤独的事。所谓君子慎独,不欺暗室。共勉之!
展开
-
Java开发 - 深入理解Redis Cluster的工作原理
前面我们讲过Redis Cluster的搭建方式,也是本着应用优先的原则,所以对其基础概念和原理几乎没有涉及,但当学会了Redis集群的搭建方式之后,对于其原来我们还是要知道一些的,所以这篇博客,我们将一起来学习Redis Cluster的一些相关知识。在开始Redis Cluster的讲解之前,还不熟悉Redis Cluster,还不知道怎么搭建Redis Cluster的小伙伴,可以先去看看以下这篇博客:Java开发 - 让你少走弯路的Redis集群搭建看完这篇博客,对于里面一些基础知识,我们就开始给大原创 2023-07-26 08:00:00 · 2604 阅读 · 76 评论 -
Java开发 - Canal进阶之和Redis的数据同步
本篇是对单节点的应用,但从中我们也能推断出一些关于集群的应用,不过大多数公司能搞个主从就已经是不错了,所以你能学会这个已经算是很有用了,关于ES,博主前面也讲过一些基础应用,创建一个工具类利用ES的数据模型进行存储就可以达到一个canal同时对Redis和ES的同步,如果担心出问题,可以把Canal搞成集群的形式,这个后续有时间博主再给大家做讲解。今天就到这里了,觉得不错就支持一下吧。原创 2023-07-04 09:04:33 · 3711 阅读 · 84 评论 -
Java开发 - Canal的基本用法
译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。下面这张图可以代表Canal的用途,就染我们来一起瞻仰一下:基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处理当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x。原创 2023-06-30 11:09:08 · 3499 阅读 · 78 评论 -
Java开发 - 负载均衡你了解多少?
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器FTP服务器企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。通俗点来讲,就好比你要去蹲坑,坑位有五六七八个,你去哪个坑都能解决你的问题,你可能这次去一号坑,下次二号坑......总之,可随机;也可以你自己喜欢哪个坑就常去哪个坑,这个叫权重;甚至你可以每次不重样,这就是轮训。原创 2023-06-24 00:15:35 · 1333 阅读 · 3 评论 -
Java开发 - 带你了解集群间的相互调用,你还在等什么?
到此,这篇关于集群间相互调用的博客就写好了,唯一觉得有些遗憾的是关于Dubbo的详细使用没有给大家讲清楚,后续单独出一篇来进行讲解,请大家稍微期待一下,其实很多人开发中未必用到异地容灾的场景,这篇博客算是给大家一个入门的门票,算不上特别精,但一定对你会有些帮助。未来,会分享更多的集群相关的博客,让我们一起学习,早日成为架构师。原创 2023-06-15 15:26:30 · 1034 阅读 · 77 评论 -
Java开发 - 读写分离初体验
Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。适用于任何基于JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。原创 2023-04-11 21:27:24 · 867 阅读 · 21 评论 -
Java开发 - MySQL主从复制初体验
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。原创 2023-04-11 13:52:00 · 2321 阅读 · 48 评论 -
Java开发 - SpringCache初体验
听名字,我们就知道,SpringCache是Spring大家族的一员,所以Spring很好的兼容了SpringCache,它实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码,比如redisTemplate,这些东西就可以省略了。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过接口来统一不同的缓存技术。简介使用EhCache作为缓存技术使用Google的GuavaCache作为缓存技术。原创 2023-04-08 14:17:16 · 3412 阅读 · 100 评论 -
Java开发 - MybatisPlus框架初体验
我们已经学习过Mybatis框架,基于一定的目的或者需求,我们希望提升此框架的应用效率,于是MyBatisPlus框架就来了,如果说Mybatis框架的快乐是1倍,那么MyBatisPlus带给你的快乐将是double,MyBatisPlus不会改变原有的项目结构,只做增强,你可以轻松引入,简化开发,提高效率。话不多说,下面我们就开始今天的MyBatisPlus之旅。正如前言所说,MyBatisPlus只是为了提高开发效率。(简称 MP)是一个。原创 2023-03-31 16:38:04 · 1310 阅读 · 50 评论 -
Java开发 - 配置中心初体验
配置中心我们也是针对微服务来说的,所以这个配置中心当然是微服务的配置中心,下面,我们就来说说什么是配置中心。就像文字描述的那样,配置中心主要用来解决配置问题,在微服务项目中,我们的配置一般是写在yml文件或者properties文件中的,这是我们所熟知的一种写法。有时候,多个子项目共用一个配置的时候,当需要修改时,往往需要去修改每一个子项目的配置,搞不好还会改错,这时候,如果能有一个地方可以统一修改,全部生效,那该是多么轻松啊,这就是配置中心的作用。总结一下就是:配置中心能够达到高效修改各模块配置的作用。原创 2023-03-23 16:30:55 · 2032 阅读 · 74 评论 -
Java开发 - ELK初体验
ELK是如今比较流行的一套框架,主要用于日志的采集保存和查询。线上情况,我们不能通过控制台来实时查看,但却可以通过日志输出来定位问题,查看必要的信息。如果保存成文件,也必然是极庞大的体量,并不适合我们去翻看,查找信息,这才有了ELH,其实对于ELK,大家也并不陌生,其中的E,就是我们前段时间学习的ES,全名Elasticsearch,中文名:全文搜索引擎。是不是很惊喜和意外?所以当然,L和K也是两个单独的系统,他们统称为ELK,下面,我们将逐一介绍这三个东西是什么。如果自己做,还是推荐官方的做法。原创 2023-03-19 10:44:12 · 2549 阅读 · 6 评论 -
Java开发 - 布隆过滤器初体验
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。布隆过滤器不保存元素,之判断是否存在,不保存,所以也无法取出元素。原创 2023-03-16 08:15:00 · 1960 阅读 · 49 评论 -
Java开发 - 消息队列之RabbitMQ初体验
RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。所以在Java业务中使用很多,目前我所知道的很多都是用的此消息队列,只不过大家评价都是:功能强,性能一般。与其相反的,就是Kafka了:性能强,功能弱。原创 2023-03-13 08:30:00 · 4206 阅读 · 90 评论 -
Java开发 - 数风流人物,还看“微服务”
说起微服务,你不得不知道一个人:Martin Fowler(马丁·福勒),微服务的概念是他在2014年提出的,在此之前,各厂商也是有自己的微服务概念的,但是并不统一,原理是也就是增加服务器,后来Martin Fowler提出这个概念后,行业内就开始遵守这个概念,统一了微服务,就像秦始皇统一度量衡一样,下面放上大佬的照片,来瞻仰一下:大佬不愧是大佬,从发量就可窥探一二。言归正传,说说微服务的概念。原创 2023-02-20 08:00:00 · 6182 阅读 · 133 评论 -
Java开发 - Elasticsearch初体验
es全称Elasticsearch,开发界简称es,如果你是做开发的,和后台接触时多多少少应该听过他们说es,redis这些不知所谓的名词,今天,你学习这部分内容就是当初不明所以的东西es。首先声明,es不是SpringCloud的组件,也并不是Java专属的,其他的后端语言也可以使用es。由于es是一个由Java开发的软件,所以启动需要Java环境变量。es有一个中文名字,叫全文搜索引擎,它的优点是可以从大量数据中根据指定的关键字快速的匹配出相关的内容。原创 2023-02-28 22:09:48 · 13532 阅读 · 75 评论 -
Java开发 - 分页查询初体验
在上一篇,我们对es进行了深入讲解,相信看过的小伙伴已经能基本掌握es的使用方法,我们知道,es主要针对的是搜索条件,在这方面es具有无可比拟的优势,但我们也会注意到,有时候搜索条件过于宽泛的时候,搜索结果集也将是非常庞大的,不仅服务器接口压力大,用户等的也很为难,为了解决这一问题,必须要对返回的数据进行处理,此时,分页就出现了,接下来,博主讲带两大家了解查询时的分页问题,并解决这个问题。原创 2023-03-01 22:00:00 · 1598 阅读 · 46 评论 -
Java开发 - 单点登录初体验(Spring Security + JWT)
登录这东西很奇怪哎,你说它难吗?好像客户端只需要调接口就行,那有啥难的?当你多多少少对登录的后台有些了解,又觉得好难啊,session,token,cookie,等等一堆东西,有老的大家都不喜欢用的,有新的一些框架的,根据公司项目规模不同,还要考虑成本的问题,真是有些头疼。博主今天推荐的一种登陆方式便是Spring Security + JWT的结合使用,为什么要两者结合呢?原创 2023-03-02 23:30:00 · 5620 阅读 · 64 评论 -
Java开发 - Quartz初体验
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Quartz 允许程序开发人员根据时间的间隔来调度作业,它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。听起来好可怕,功能也太强大了。但从字里行间我们还是读出来,它主要是用于延时的。赶紧关掉这些服务,博主的电脑已经吼起来了。原创 2023-03-06 11:10:32 · 4363 阅读 · 78 评论 -
Java开发 - 消息队列前瞻
常见消息队列 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等详解和对比 - 知乎最后了,说啥啥?还是说说关于消息队列博主的教程方向吧。后续,博主会通过两篇博客来分别讲解RabbitMQ和Kafka的实战用法,此篇权当给大家一个前瞻,了解下即可。原创 2023-03-09 21:30:00 · 927 阅读 · 32 评论 -
Java开发 - 消息队列之Kafka初体验
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。原创 2023-03-11 21:30:00 · 1202 阅读 · 24 评论