传统架构

分布式+Dubbo

image-20200906111828992

微服务架构

微服务架构的优缺点

微服务关注的是敏捷,快速开发

image-20211126212339123

image-20211126213509277

image-20211126213841577

image-20211126214003310

微服务架构经典协议

消息通信模式:同步,异步,混合,微信消息就是异步

经典的RPC协议:

image-20211126220444577

常用的通信协议:

同步调用:HTTP/REST/RPC

异步调用:AMQP,消息队列(ActiveMq,RabbitMQ,Kafka,RocketMQ,Notify,MetaQ)

微服务架构开发框架

image-20211126222911976

image-20211126223404219

image-20211126223428205

微服务架构设计策略

image-20211126223616119

image-20211126224224618

image-20211126224746225

image-20211126225024913

微服务架构设计模式

image-20211126225615721

image-20211126225922634

image-20211126230115101

image-20211126230207150

SpringCloud开发配置

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)
  • 使用http的RESTFul 代替rpc
  • Spring Cloud 2020(Springboot2.4)重大更新,分界点,netfix删除了很多
  • 参 考

  • 建立普通maven项目,父项目

    • <?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>top.dean0731</groupId>
          <artifactId>SpringCloudDemo</artifactId>
          <version>1.0-SNAPSHOT</version>
          <!--打包方式-->
          <packaging>pom</packaging>
          <properties>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <maven.compiler.source>1.8</maven.compiler.source>
              <maven.compiler.target>1.8</maven.compiler.target>
              <junit.version>4.13</junit.version>
              <lombok.version>1.18.12</lombok.version>
              <log4j.version>1.2.17</log4j.version>
          </properties>
          <dependencyManagement>
              <dependencies>
                  <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
      <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-dependencies</artifactId>
                  <version>Hoxton.SR11</version>
                  <type>pom</type>
                  <scope>runtime</scope>
              </dependency>
      
                  <!--springboot-->
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-dependencies</artifactId>
                      <version>2.3.0.RELEASE</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>
                  <!--数据库-->
                  <dependency>
                      <groupId>mysql</groupId>
                      <artifactId>mysql-connector-java</artifactId>
                      <version>5.1.48</version>
                  </dependency>
                  <dependency>
                      <groupId>com.alibaba</groupId>
                      <artifactId>druid</artifactId>
                      <version>1.1.21</version>
                  </dependency>
                  <!--springboot启动器-->
                  <dependency>
                      <groupId>org.mybatis.spring.boot</groupId>
                      <artifactId>mybatis-spring-boot-starter</artifactId>
                      <version>2.1.1</version>
                  </dependency>

            <!--日志与测试-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
```
  • 在里面建立maven子项目

服务注册与发现

image-20211126233607824

Eureka

image-20211126233750225

image-20211126234055653

参考:https://spring.io/guides/gs/service-registration-and-discovery/

标签: none

评论已关闭