微服务Spring Cloud Config配置中心与RabbitMQ安装指南

这篇具有很好参考价值的文章主要介绍了微服务Spring Cloud Config配置中心与RabbitMQ安装指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Cloud Config,微服务,RabbitMQ安装指南
config配置中心的作用:项目的yml 配置文件保存到 git 服务器,例如 github.com 或 gitee.com
微服务启动时,从服务器获取配置文件
1.新建 “Project”,命名为 config。注意这里的不是maven项目,而是project
Spring Cloud Config,微服务,RabbitMQ安装指南
Spring Cloud Config,微服务,RabbitMQ安装指南
2.将sp02,sp03,sp04,sp11四个项目的yml配置文件,复制到config项目,并改名
item-service-dev.yml
user-service-dev.yml
order-service-dev.yml
zuul-dev.yml
Spring Cloud Config,微服务,RabbitMQ安装指南
3.最后,清空四个项目中的application.yml文件

4.禁止配置中心的配置信息覆盖客户端配置
默认配置中心配置优先级高,配置中心配置会覆盖客户端的所有配置,包括命令行参数配置,这样我们在item-service和order-service中配置的端口号启动参数会无效

item-service 启动参数:
–service.port=8001
–service.port=8002
order-service 启动参数
–service.port=8201
–service.port=8202

我们可以设置禁止配置中心的配置将客户端配置覆盖掉
在四个配置文件中添加下面的配置

spring:
  cloud:
# 如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置
  config:
      override-none: true

5.将 config 项目上传到 github
新建仓库
Spring Cloud Config,微服务,RabbitMQ安装指南
仓库命名
Spring Cloud Config,微服务,RabbitMQ安装指南
将项目分享到仓库
Spring Cloud Config,微服务,RabbitMQ安装指南
选择新建本地仓库
仓库目录选择工作空间目录下一个新目录: sp-config
Spring Cloud Config,微服务,RabbitMQ安装指南
提交项目
Spring Cloud Config,微服务,RabbitMQ安装指南
Spring Cloud Config,微服务,RabbitMQ安装指南
填写sp12-config仓库地址
Spring Cloud Config,微服务,RabbitMQ安装指南
查看远程仓库文件
Spring Cloud Config,微服务,RabbitMQ安装指南
config 服务器
config 配置中心从 git 下载所有配置文件。
而其他微服务启动时从 config 配置中心获取配置信息。
1.新建 sp12-config 项目
Spring Cloud Config,微服务,RabbitMQ安装指南
2.pom.xml

<?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.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>cn.tedu</groupId>
	<artifactId>sp12-config</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>sp12-config</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-config-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

3.application.yml

spring:
  application:
    name: config-server
  
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/你的个人路径/sp-config
          searchPaths: config
          #username: your-username
          #password: your-password
    
server:
  port: 6001
    
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka

4.主程序添加 @EnableConfigServer 和 @EnableDiscoveryClient

package cn.tedu.sp12;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;

@EnableConfigServer
@EnableDiscoveryClient
@SpringBootApplication
public class Sp12ConfigApplication {

	public static void main(String[] args) {
		SpringApplication.run(Sp12ConfigApplication.class, args);
	}

}

5.启动,访问测试
访问 item-service-dev.yml 可以使用以下形式:

http://localhost:6001/item-service-dev.yml
http://localhost:6001/item-service/dev

测试其他文件

http://localhost:6001/user-service/dev
http://localhost:6001/zuul/dev
http://localhost:6001/order-service/dev

6.config 客户端
修改以下项目,从配置中心获取配置信息
sp02-itemservice
sp03-userservice
sp04-orderservice
sp11-zuul

pom.xml 添加 config 客户端依赖
右键点击项目,编辑起步依赖,添加 config client 依赖
Spring Cloud Config,微服务,RabbitMQ安装指南
在四个项目中添加 bootstrap.yml
bootstrap.yml,引导配置文件,先于 application.yml 加载
item-service

spring: 
  cloud:
    config:
      discovery:
        enabled: true
        service-id: config-server
      name: item-service
      profile: dev
      
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka

user-service

spring: 
  cloud:
    config:
      discovery:
        enabled: true
        service-id: config-server
      name: user-service
      profile: dev
      
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka

order-service

spring: 
  cloud:
    config:
      discovery:
        enabled: true
        service-id: config-server
      name: order-service
      profile: dev
      
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka

zuul

spring: 
  cloud:
    config:
      discovery:
        enabled: true
        service-id: config-server
      name: zuul
      profile: dev
      
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka

7.启动服务,观察从配置中心获取配置信息的日志
Spring Cloud Config,微服务,RabbitMQ安装指南
RabbitMQ的安装
1.RabbitMQ基本概念:
RabbitMQ是一种消息中间件,用于处理来自客户端的异步消息。服务端将要发送的消息放入到队列池中。接收端可以根据RabbitMQ配置的转发机制接收服务端发来的消息。RabbitMQ依据指定的转发规则进行消息的转发、缓冲和持久化操作,主要用在多服务器间或单服务器的子系统间进行通信,是分布式系统标准的配置。
Spring Cloud Config,微服务,RabbitMQ安装指南
2.RabbitMQ使用场景
服务解耦
假设有这样一个场景, 服务A产生数据, 而服务B,C,D需要这些数据, 那么我们可以在A服务中直接调用B,C,D服务,把数据传递到下游服务即可

但是,随着我们的应用规模不断扩大,会有更多的服务需要A的数据,如果有几十甚至几百个下游服务,而且会不断变更,再加上还要考虑下游服务出错的情况,那么A服务中调用代码的维护会极为困难

这是由于服务之间耦合度过于紧密
Spring Cloud Config,微服务,RabbitMQ安装指南
再来考虑用RabbitMQ解耦的情况
A服务只需要向消息服务器发送消息,而不用考虑谁需要这些数据;下游服务如果需要数据,自行从消息服务器订阅消息,不再需要数据时则取消订阅即可
Spring Cloud Config,微服务,RabbitMQ安装指南

流量削峰
假设我们有一个应用,平时访问量是每秒300请求,我们用一台服务器即可轻松应对Spring Cloud Config,微服务,RabbitMQ安装指南

而在高峰期,访问量瞬间翻了十倍,达到每秒3000次请求,那么单台服务器肯定无法应对,这时我们可以考虑增加到10台服务器,来分散访问压力
但如果这种瞬时高峰的情况每天只出现一次,每次只有半小时,那么我们10台服务器在多数时间都只分担每秒几十次请求,这样就有点浪费资源了
Spring Cloud Config,微服务,RabbitMQ安装指南

这种情况,我们就可以使用RabbitMQ来进行流量削峰,高峰情况下,瞬间出现的大量请求数据,先发送到消息队列服务器,排队等待被处理,而我们的应用,可以慢慢的从消息队列接收请求数据进行处理,这样把数据处理时间拉长,以减轻瞬时压力
这是消息队列服务器非常典型的应用场景
Spring Cloud Config,微服务,RabbitMQ安装指南
异步调用
考虑定外卖支付成功的情况
支付后要发送支付成功的通知,再寻找外卖小哥来进行配送,而寻找外卖小哥的过程非常耗时,尤其是高峰期,可能要等待几十秒甚至更长
这样就造成整条调用链路响应非常缓慢
Spring Cloud Config,微服务,RabbitMQ安装指南
而如果我们引入RabbitMQ消息队列,订单数据可以发送到消息队列服务器,那么调用链路也就可以到此结束,订单系统则可以立即得到响应,整条链路的响应时间只有200毫秒左右
寻找外卖小哥的应用可以以异步的方式从消息队列接收订单消息,再执行耗时的寻找操作
Spring Cloud Config,微服务,RabbitMQ安装指南
3.RabbitMQ安装
第一步:安装erlang语言库
RabbitMQ使用了Erlang开发语言

RabbitMQ官方精简的Erlang语言包,依赖rpm安装包
https://github.com/rabbitmq/erlang-rpm
Spring Cloud Config,微服务,RabbitMQ安装指南
下载和安装
这两条命令都是在linux系统中去完成的:

# 下载Erlang语言包
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v21.2.6/erlang-21 .3.8.12-1.el7.x86_64.rpm 
# 安装Erlang 
rpm -ivh erlang-21.2.6-1.el7.x86_64.rpm --force --nodeps

第二步:安装socat依赖 socat依赖包 http://pkgs.org/download/socat ``Spring Cloud Config,微服务,RabbitMQ安装指南 ` http://centos.pkgs.org/7/centos-x86_64/socat-1.7.3.2-2.el7.x86_64.rpm.html Spring Cloud Config,微服务,RabbitMQ安装指南 下载和安装 这两条命令都是在linux系统中去完成的:

下载 socat rpm

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/socat-1.7.3.2-2.el7.x8 6_64.rpm

安装 socat 依赖包

rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm

相关的命令解释:
rpm -ivh其中的
 -i (install   安装软件包 ) 
 -v (view  可视化)
 -h ( hour 方便自己记忆 显示安装进度   )

简单来讲就是  可视化并显示进度地 安装软件 第三步:安装rabbitmq rabbitmq安装包 https://www.rabbitmq.com/install-rpm.html#downloads Spring Cloud Config,微服务,RabbitMQ安装指南 下载和安装

下载 rpm 包

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.13/rabbitmq-server-3.7.13-1.el7.noarch.rpm

安装 rpm 包

rpm -ivh rabbitmq-server-3.7.13-1.el7.noarch.rpm

启动rabbitmq服务器

设置服务,开机自动启动

chkconfig rabbitmq-server on
#启动服务
service rabbitmq-server start
#停止服务
service rabbitmq-server stop

rabbitmq管理界面
启用管理界面

开启管理界面插件

rabbitmq-plugins enable rabbitmq_management

防火墙打开 15672 管理端口

firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload

重启RabbitMQ服务

systemctl restart rabbitmq-server

访问
访问服务器的15672端口,例如:

http://192.168.64.140:15672


添加用户

添加用户

rabbitmqctl add_user admin admin

新用户设置用户为超级管理员

rabbitmqctl set_user_tags admin administrator

设置访问权限
Spring Cloud Config,微服务,RabbitMQ安装指南 Spring Cloud Config,微服务,RabbitMQ安装指南 开放客户端连接端口

打开客户端连接端口

firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload

``
主要端口介绍
4369 – erlang发现口
5672 – client端通信口
15672 – 管理界面ui端口
25672 – server间内部通信口
`文章来源地址https://www.toymoban.com/news/detail-508052.html

到了这里,关于微服务Spring Cloud Config配置中心与RabbitMQ安装指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 解决 Spring Cloud 2021.0.5 版本,使用 nacos 做配置中心,报 No spring.config.import property has been defined 的问题

    报错信息如下 Description: No spring.config.import property has been defined Spring 官方给出的解决方案如下 Add a spring.config.import=nacos: property to your configuration. If configuration is not required add spring.config.import=optional:nacos: instead. To disable this check, set spring.cloud.nacos.config.import-check.enabled=false. 这里只

    2024年02月11日
    浏览(48)
  • Spring Cloud Config配置服务及那些你不知道的坑

    Spring Cloud Config配置服务及那些你不知道的坑

    目录 1、为什么选择Spring Cloud Config 1.1 集中式管理 1.2 动态修改配置 2、Spring Cloud Config 简介 3、服务端配置 3.1 添加依赖 3.2 开启服务注册 3.3 添加YML配置 3.4 创建远程分支及Profile配置文件 3.5 启动并测试服务 4、客户端配置 4.1 添加依赖 4.2 开启服务注册 4.3 添加YML配置 4.4 启动并

    2024年02月05日
    浏览(46)
  • Spring Cloud集成Nacos实现服务配置中心 | Spring Cloud 7

    先我们来看一下,微服务架构下关于配置文件的一些问题: 配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散在各个微服务中,不好统一配置和管理。 配置文件无法区分环境,开发环境、测试环境、线上环境。微服务项目可能会

    2024年02月14日
    浏览(44)
  • 微服务 – Spring Cloud – Nacos 配置中心

    Data ID : nacos-config-client-dev.yaml Group: DEV-CLOUD2023

    2024年02月11日
    浏览(45)
  • Spring Cloud Alibaba 微服务2,注册中心演变 + Nacos注册中心与配置中心

    Spring Cloud Alibaba 微服务2,注册中心演变 + Nacos注册中心与配置中心

    🏆作者简介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 , 专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于 Java基础教程系列(进阶篇) ,本专栏是针对大学生、初级Java工程师精心打造, 针对Java生态,逐个击破,

    2024年02月02日
    浏览(822)
  • Spring Cloud Alibaba--Nacos服务注册和配置中心

    Spring Cloud Alibaba--Nacos服务注册和配置中心

    Nacos 是Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos的特性,官网解释如下: 服务发现和服务健康监测 Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Age

    2024年02月05日
    浏览(42)
  • Spring Cloud Alibaba Nacos(服务注册及配置中心)

    Nacos是由阿里巴巴提供的一款专门构建云本地应用的 动态服务发现、配置中心和服务管理平台 。 在Spring Cloud Alibaba中常使用Nacos作为注册中心和分布式配置中心。  (1)服务发现和管理 动态服务发现是以服务为中心(例如微服务或云原生)体系结构的关键。Nacos支持基于DN

    2024年02月16日
    浏览(51)
  • day10-Spring Cloud Alibaba Nacos-服务注册与配置中心

    官网:https://github.com/alibaba/nacos,Nacos官方中文手册 Nacos:Spring Cloud Alibaba服务注册与配置中心(非常详细) (biancheng.net) Spring Cloud Alibaba系列-一文读懂Nacos原理 - 掘金 (juejin.cn) Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服

    2024年02月08日
    浏览(67)
  • 微服务 Spring Cloud 7,Nacos配置中心的Pull原理,附源码

    微服务 Spring Cloud 7,Nacos配置中心的Pull原理,附源码

    大家好,我是哪吒。 在单体服务时代,关于配置信息,管理一套配置文件即可。 而拆分成微服务之后,每一个系统都会有自己的配置,并且都各不相同,有些配置还需要动态改变,以达到动态降级、切流量、扩缩容等目的。 在Spring Boot开发中,可以把配置项放到config文件中

    2024年02月04日
    浏览(52)
  • 【深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心】—— 每天一点小知识

    【深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心】—— 每天一点小知识

                                                                💧 深入了解 S p r i n g C l o u d A l i b a b a N a c o s :服务注册和配置中心 color{#FF1493}{深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心} 深入了解 Sp r in g Cl o u d A l ibaba N a cos :服务注

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包