SpringCloud(第一天)

1.单体应用:所有资源都在一个应用,打包成一个war包,一个Tomcat运行,运行在一个进程.

a)? 解决方案:可以做集群,但是不方便局部扩展(对某一个模块单独集群),维护,开发,升级麻烦,技术选型单一,数据库选型单一

2.微服务:一个系统多个微小服务,每个服务专注一个业务.每个服务都有各自的进程,微服务之间通过网络通信协议进行数据交互(通常是使用HTTP的restFul风格传递)

a)? 优势:技术选型多元化,数据库选型多元化,维护方便,方便做局部拓展,每个服务都有单独的进程

b)? Dubbo和SpringCloud

??????????? i.???? Dubbo的通信协议RPC(基于TCP通信)

?????????? ii.???? SpringCloud的通信协议HTTP对TCP进行了一次封装,性能相对于Dubbo而言较低

3.SpringCloud

a)? 微服务入门

b)? Maven多模块环境搭建.

  i.搭建父项目模块

  1. Pom.xml文件
    
    
             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">
        4.0.0
    
        cn.itsource
        springboot-parent
        pom
        1.0-SNAPSHOT
        
    //父项目的各个子模块项目 springboot-eureka springboot-userclient springboot-deptprovider
    UTF-8 UTF-8 1.8 Finchley.SR1 2.0.5.RELEASE org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-dependencies ${springboot.version} pom import

? ? ? ? ii.???? 注册中心服务端环境搭建

  1. pom.xml导包
    
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.cloud
    spring-cloud-starter-netflix-eureka-server
    // spring-cloud-starter-netflix-eureka-server包含了spring-cloud-starter-netflix-eureka-client包
        
    
  2. Application.yml配置文件配置
    spring:
      application:
        name: spring-cloud-eureka
    server:
      port: 7001
    eureka:
      instance:
        hostname: localhost
      client:
        #不向Eureka注册自己
        register-with-eureka: false
        #不检查其他的EurekaServer节点
        fetch-registry: false
        service-url:
          #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址)
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  3. 注册中心服务启动类
    @SpringBootApplication
    @EnableEurekaServer
    public class SpringBootApplicationConfig_7001 {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootApplicationConfig_7001.class,args);
        }
    }

? ? iii.???? 消费者和提供者客户端环境搭建

  1. Pom.xml

    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-client
    

   2.Application.yml配置文件配置

spring:
  application:
    name: SPRING-CLOUD-USER
server:
  port: 8001
eureka:
  instance:
    hostname: localhost
  client:
    service-url:
      #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址)
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      defaultZone: http://localhost:7001/eureka

?


? ? ? ?3.注册到注册中心:客户端服务启动类

@SpringBootApplication
@EnableEurekaClient
public class SpringbootApplication_8001 {

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

如果有多个服务,就在父模块下面搭建多个子模块,做相同的配置进行服务注册到注册中心.

猜你喜欢

转载自www.cnblogs.com/8888-lhb/p/11546458.html