微服务
文章平均质量分 77
二王一个今
一个相信自己的菜鸟
展开
-
SpringCloud保姆级搭建教程六---ElasticSearch
打开idea,open这个ik分词器的项目,这里要注意一个坑,先打开pom.xml文件,修改一个版本号,这里虽然下载的7.17.3版本的ik分词器,但是在pom.xml中有一个es的版本号并不是这个,如果这里不改,后面仍旧会报错。此时此刻,它是不能直接用的,需要编译打包才可以,我这里是用idea打开的,因为我用mvn命令失败了,应该是我没配置的原因。2、下载好kibana之后,同样的,解压,然后打开文件夹的这个路径,双击kibana.bat。然后要做的就是,在es的这个目录下创建的一个名叫ik的空文件夹。原创 2023-02-20 14:18:04 · 831 阅读 · 0 评论 -
SpringCloud保姆级搭建教程五---Redis
安装过程就不说了,打开之后,点击连接到redis服务器,输入链接地址和redis的端口号,6379就可以连接redis了。1、首先,要先安装redis到电脑上,这里依然是在windows上演示,之后我会专门写一整套,在服务器上怎么安装各类软件并部署的教程。首先,这个和微服务没有直接的关系,只是在代码开发当中要使用的一个工具而已,为了提高这个系统的性能,加快查询效率等方面而使用它。下载之后,放到一个指定的文件夹,解压,并启动,双击reids-server.exe就算是redis服务端启动了。原创 2023-02-15 10:30:28 · 781 阅读 · 0 评论 -
SpringCloud保姆级搭建教程四---Gateway
6、接下来就是测试呗,配置文件中的路由部分,也就是routes下面写的,已经将bigson和smallson绑定在了gateway上,现在只需要将端口号改成gateway的,就能访问到这俩服务的接口了(都显示小儿子是因为上一节的feign中,bigson调用了smallson的方法)我这里是用的这几个版本,我也不知道对不对,反正就是不报错,在我这,不错就是对。注意缩进哈,这个就是局部过滤器,只给访问bigson的请求,添加请求头和响应头。答,系统保安,所有想访问系统的请求都要通过gateway。原创 2023-02-09 15:03:59 · 435 阅读 · 0 评论 -
SpringCloud保姆级搭建教程三---Feign
这个时候我们要明白,我们现在在子工程里面加的所有依赖,都是父工程传下来的,所以,这里需要加版本号是因为父工程添加的依赖中并没有feign,所以,我们要去父工程中添加 springcloud的依赖。这里,又有注意点了。所以,首先,在服务A中添加feign的依赖,我这里就还用之前的bigSon去调用smallSon中的方法,但是发现在bigSon中添加Feign依赖的时候,需要我加版本号,这就不对劲了。4、这时候可以启动起来,在浏览器中测试,访问一下,能看到返回的我是大儿子,我是小儿子,就代表成功了。原创 2023-02-09 11:33:36 · 469 阅读 · 0 评论 -
SpringCloud保姆级搭建教程二---Nacos下载与注册
找一个版本,找这个Assets点开,linux下载tar.gz后缀,windows下载.zip后缀。2、我这里用的是windows的2.1.1版本,下载之后解压,放到专属文件夹中,防止以后找不到。进入nacos的bin文件夹,然后打开cmd窗口,不知道怎么打开就看图,写进去cmd按回车就行。12、点击服务列表,查看public下,出现了我们创建的两个微服务,证明,我们已经成功了。9、给两个子服务添加nacos配置文件,一模一样,注意格式和缩进。5、在浏览器中输入,上图中的地址。6、打开界面,就代表成功了。原创 2023-02-08 11:39:43 · 305 阅读 · 0 评论 -
springcloud保姆级搭建教程一----项目搭建
一、springboot 和 springcloud alibaba 的版本号一定要对应,用版本号相接近的,比如都是2.1.*。13、按照上面的子项目创建步骤,再创建一个一模一样的,只不过名字不一样,端口号随便换一下,应用名随便改一下,实在不会改,看图照抄。4、本身springcloud其实就是父项目和子项目,子项目就是我们说的微服务。12、创建包,创建启动类,写启动类里面的方法(要是不会,就照抄我的)5、添加最最基础依赖,看版本,以及下面的。6、创建模块,也就是子项目,也就是微服务。原创 2023-02-08 11:37:26 · 454 阅读 · 0 评论 -
kafka总结概述
消息中间件对比特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从)非常高(分布式)非常高(分布式)功能特性成熟的产品、较全的文档、各种协议支持好并发能力强、性能好、延迟低MQ功能比较完善,扩展性佳只支持主要的MQ功能,主要应用于大数据领域消息中间件对比-选择建议消息中间件建议Kafkakafka介绍。...原创 2022-07-24 16:54:07 · 785 阅读 · 0 评论 -
Mysql主从复制
MySQL数据库默认是支持主从复制的,底层基于MySQL数据库自带的二进制日志功能实现。也称为binlog,这是MySQL自带的一种日志功能,它会记录下所有的增删改语句,但是不记录查询语句。MySQL的主从复制其实就是由主库生成binlog,里面记录用户对数据库产生影响的操作。从库负责读取这个日志,并进行解析得到对应的SQL语句,然后在自己所在的服务器上执行,就可以得到跟主库一致的数据了。master将数据变更写入二进制日志slave将master的二进制日志拷贝到它的中继日志(relaylog)...原创 2022-07-22 18:26:33 · 768 阅读 · 3 评论 -
Seata分布式事务
首先要分析分布式事务的话,就要明白什么是分布式事务嘛,那么分布式事务就是在微服务中,多个微服务做同一个业务的时候,每个微服务要做到同成功同失败,那么这个就是分布式事务嘛,那通过什么玩意来达到这个目的呢,就是我们今天的主角,Seata!!!!本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如:跨数据源的分布式事务跨服务的分布式事务综合情况在数据库水平拆分、服务垂直拆分之后,一个业务操作通常要跨多个数据库、服务才能完成。例原创 2022-07-13 21:59:22 · 2114 阅读 · 2 评论 -
RabbitMQ学习总结
微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应异步通讯:就像发微信,不需要马上回复两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送消息可以同时与多个人沟通,但是往往响应会有延迟微服务间基于Feign的调用就属于同步方式,它存在一些问题:耦合度高:每次加入新的需求,都要修改原来的代码性能下降:调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和资源浪费:调用链中的每个服务在等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系原创 2022-07-13 16:53:41 · 218 阅读 · 0 评论 -
Docker学习总结
docker其实就是帮助我们在linux上安装各种软件的小帮手。我是这么认为的哈,他里面引入了两个概念,镜像和容器,镜像就是我们所要安装的软件,只不过是docker所需要的格式,容器就是镜像运行的地方。相当于一个小型linux系统。- Docker是一个开源的应用容器引擎,官网:https://www.docker.com- 诞生于2013年初,基于Go语言实现, dotCloud公司出品(后改名为Docker Inc)- Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然原创 2022-07-13 16:38:21 · 941 阅读 · 0 评论 -
ElasticSearch 搜索引擎
简称es,是类似于mysql但是专注于搜索的一种数据库。在elastic stack中占据重要地位。 我们的数据库都是正向索引,比如根据id查询数据,那么倒排索引是将关键字进行分词,然后将词条和id保存在一张表中,不同数据分词后有相同的词条的话,就会记录在同一条数据中,并且把id放在一个字段,搜索的时候根据词条先搜索出符合的id,然后根据id查询数据。 下载地址:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integra原创 2022-07-08 23:00:48 · 1266 阅读 · 0 评论 -
Sentinel 微服务保护机制
Sentinel的主要作用就是保护微服务。微服务常见的问题就是雪崩问题:那么什么是雪崩问题呢?简单来说,就是相互依赖的服务中,有其中一方不可用,导致依赖它的一方,因为请求得不到回应,导致请求一直堵塞,当达到了服务的临界值后,tomcat的资源被耗尽,被请求堵塞的服务就会也变成不可用,同样的道理,就会有越来越多的服务损坏,造成不可挽回的微服务崩塌损坏的现象,和自然界的雪崩道理相同,这就是服务雪崩。 那么遇到这种雪崩问题,我们的微服务集群就会彻底崩塌不可使用,为了避免这种情况的发生,大佬们就写出了Hystrix原创 2022-07-07 18:01:22 · 839 阅读 · 0 评论 -
Jmeter快速入门
Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。可以Apache Jmeter官网下载,地址:Apache JMeter - Download Apache JMeter因为下载的是zip包,解压缩即可使用,目录结构如下: 其中的bin目录就是执行的脚本,其中包含启动脚本: 双击即可运行,但是有两点注意:启动速度比较慢,要耐心等待启动后黑窗口不能关闭,否则Jmeter也跟着关闭了默认Jmeter的语言是英文,需要设置: 效果: 注意:上面的配置只能保证本次运行是中文原创 2022-07-07 16:06:01 · 147 阅读 · 0 评论 -
服务网关--Gateway
为什么需要网关呢?对微服务的请求不能毫无限制,所以就需要一个东西对其进行筛选,限制等等,那么网关就干的这个事。可以对其进行身份认证和权限校验、服务路由、负载均衡以及请求限流等等操作。 搭建网关的步骤: 编写好启动类之后,配置application.yml 网关搭建总结: SpringCloud Gateway包括许多内置的断言工厂,所有这些断言都与HTTP请求的不同属性匹配。具体如下: 简单的查看几个断言的使用(实际上就是满足一个条件,满足就通过,不满足就不通过) 最后那几个就是断言。过滤器原创 2022-06-27 16:28:45 · 826 阅读 · 2 评论 -
远程调用--Feign
之前使用RestTemplate进行服务之间的调用,在代码风格上来看不太统一和美观,存在代码可读性差,编程体验不统一参数复杂URL难以维护的问题,Feign就可以解决这个问题。Feign是一个声明式的http客户端,它使得调用远程服务就像调用本地服务一样简单,只需要创建一个接口并添加一个注解即可。其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。而且Feign默认集成了Ribbon,所以使用Feign默认就实现了负载均衡的效果。我们在消费者这一方,也就是调用其他服务的这一方进行Feign的原创 2022-06-27 15:52:08 · 234 阅读 · 0 评论 -
服务治理-Nacos
Nacos下载: mac下第一个 windows下的二个下载地址:https://github.com/alibaba/nacos/releaseshttps://github.com/alibaba/nacos/releases 进入安装路径的bin目录,通过cmd命令行输入即可启动访问控制台现实的nacos管理页面,完成登录: 那么之前我们是用的Eureka进行的服务注册,现在使用Nacos进行相同的功能使用。修改提供者和消费者中的依赖和配置文件。① 在pom文件中引入nacos-disc原创 2022-06-27 12:53:03 · 957 阅读 · 2 评论 -
服务治理--Eureka
将调用地址写死势必会造成一些问题,所以要想办法进行优化,那么就出现了服务治理,也就是Eureka.服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化服务注册与服务发现。这里引入两个概念:提供者和消费者。每个微服务都可以是消费者也可以是提供者。下面通过代码实现:1、添加Eureka的服务模块2、在pom.xml中添加Eureka服务端依赖3、添加配置文件application.yml,(Eureka本身也是个服务,配置文件中添加路径之后,它会将自己也注册到服务注册中心,在访问的页面可以原创 2022-06-27 11:25:11 · 457 阅读 · 0 评论 -
微服务总结
微服务简单来说就是功能模块拆分后可以单独负责唯一职责的微应用,也就叫微服务。多个负责自己专一功能的微服务放在一起就叫做服务集群。针对于微服务这一概念,其中包括很多的技术栈和概念,下图可以表示,其中有服务注册,服务配置,服务网关等等等等。常见的微服务技术的架构大致有这么几种,其优缺点如下图: 那么微服务之间的调用问题就是首要问题了,也就是怎么和浏览器一样,放松http请求,从而获取到其他微服务中的信息。引入知识点:RestTemplate 1、首先在spring容器中放入RestTamplate2、在Serv原创 2022-06-27 10:18:28 · 234 阅读 · 0 评论