第四阶段学习笔记

微服务

概念

是一种思想,基础是将单 个应用程序开发为一组小型独立服务,这些独立服务在自己的进程中运行,独立开发和部署。是分布式系统中的一种流行的架构模型,主要解决的是如何快速地开发的和部署我们的服务,对于能够适应快速开发和成长的公司是非常必要的。同时微服务设计中有很多很不错的想法和理念,通过学习微服务架构我们可以更快的成长。

Nacos

安装

https://nacos.io/zh-cn/docs/quick-start.html
windows版本下载下来后是一个压缩包,解压后得到如下目录

bin  ..
conf ..
target ..
LICENSE
NOTICE
  1. 先检查JAVA_HOME变量有没有配置好,需要JDK8的环境
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_261
  1. 再检查Mysql的数据库版本版本为5.7以上,也可以使用MariaDBMySQL版本为10.5以上
    使用cmd连接上数据库,创建nacos_config数据库,默认utf8mb4编码的数据库
DROP DATABASE IF EXISTS `nacos_config`;

CREATE DATABASE  `nacos_config` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

USE `nacos_config`;

然后使用下面的语句导入nacos程序文件夹里面的conf/nacos-mysql.sql

source D:/nacos/conf/nacos-mysql.sql
  1. 打开conf/application.properties文件,打开以下配置
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
 spring.datasource.platform=mysql #本案例中使用的是mariadb,这里使用mysql就可以了

### Count of DB:
 db.num=1 #这里的数量是一定要有的,否则会报错

### Connect URL of DB:
# 下面的配置根据自己的环境配置就可以了
 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
 db.user.0=nacos
 db.password.0=nacos

到这里,配置部分就完成了,打开nacos/bin/文件夹,打开cmd

startup.cmd -m standalone

可以看到如下提示

"nacos is starting with standalone"

         ,--.
       ,--.'|
   ,--,:  : |                                           Nacos 2.0.3
,`--.'`|  ' :                       ,---.               Running in stand alone mode, All function modules
|   :  :  | |                      '   ,'\   .--.--.    Port: 8848
:   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 19204
|   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://192.168.116.1:8848/nacos/index.html
'   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_
|   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io
'   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \
|   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  /
'   : |     ;  :   .'   \   :    : `----'  '--'.     /
;   |.'     |  ,     .-./\   \  /            `--'---'
'---'        `--`---'     `----'

看到如下这句话就是运行成功了

2021-12-21 19:14:20,048 INFO Completed initialization in 28 ms

在浏览器打开

http://localhost:8848/nacos

用户名和密码都是nacos,可以登陆成功,nacos部分就可以先告一段落了。下面我们需要创建两个项目,分别注册到nacos中,并使用nacos的发现功能来实现在一个服务中调用另外一个服务的过程

在IDEA创建主项目

  1. new Project -> Maven
    在这里插入图片描述
    编辑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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>nacosdemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR9</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </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>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>

        </plugins>
    </build>
</project>
  1. 在当前根目录上右键新建module -> provider项目,同样的方式新建consumermodule

Feign

value:指写远程调用的服务名称
contextId:指定当前BeanId

@FeignClient(value="sca-provider",contextId="remoteProviderService")
public interface RemoteProviderService(){
}

熔断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水晶心泉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值