精华内容
下载资源
问答
  • SSM微服务搭建

    千次阅读 2017-05-17 10:14:21
    SSM微服务搭建

    本文所使用的后台开发框架主要是Spring+Spring MVC+Mybatis ,提供浏览器和android客户端参考demo,服务非常简单,适合想入门ssb开发,毕业设计需要简单后台的同学。目前代码还是整理中,必要注释没有加入。

    github仓库


    展开全文
  • 微服务搭建微服务常用几大组件微服务搭建步骤搭建SpringBoot项目搭建注册中心Eureka搭建提供者搭建消费者Feign搭建zuul搭建熔断器Hystrix运行测试 微服务常用几大组件 服务治理: Spring Cloud Eureka 客户端负载...

    一、微服务常用几大组件

    服务治理: Spring Cloud Eureka
    客户端负载均衡: Spring Cloud Ribbon
    服务容错保护: Spring Cloud Hystrix
    声明式服务调用: Spring Cloud Feign
    API 网关服务:Spring Cloud Zuul

    二、微服务搭建步骤

    2.1、搭建SpringBoot项目

    1)使用Spring Initializr搭建一个SpringBoot项目
    在这里插入图片描述
    2)创建HelloController类
    在这里插入图片描述
    3)执行WorldApplication启动类,浏览器中访问 http://localhost:8080/hello
    在这里插入图片描述

    2.2、搭建注册中心Eureka

    1)在上面项目上右键-》New-》Module-》创建一个项目
    2)在pom文件中导入依赖
    这里要加上版本号

    <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
                <version>2.1.1.RELEASE</version>
            </dependency>
        </dependencies>
    

    3)编写启动类EurekaApplication

    package com.helloworld;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer   //标志这是一个注册中心
    public class EurekaApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class, args);
        }
    }
    

    4)编写配置文件application.yml

    server:
      port: 8001 # 服务端口
    
      eureka:
        instance:
          hostname: localhost
        client:
          registerWithEureka: false # 是否向 Eureka 注册服务。该应用为服务注册中心,不需要自注册,设置为 false
          fetchRegistry: false # 是否检索服务。该应用为服务注册中心,职责为注册和发现服务,无需检索服务,设置为 false
          serviceUrl:
            defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # 注册中心url
      spring:
        application:
          name: eurka-server  #服务名称
    

    5)启动项目访问http://localhost:8001/
    在这里插入图片描述

    2.3、搭建提供者

    1)在上面项目上右键-》New-》Module-》创建一个项目
    2)编写配置文件application.yml

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8001/eureka/
    server:
      port: 8002
    spring:
      application:
        name: ribbon-provider
    

    3)启动类添加@EnableEurekaClient注册服务,然后注入RestTemplate对象,@LoadBalanced表示开启负载均衡
    4)创建ProviderController

    package com.cloud.provider.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class ProviderController {
    
        @GetMapping(value = "/index")
        public String index() {
            return "hello provider!";
        }
    }
    

    5)启动项目,访问提供者http://localhost:8002/index,可以看到返回结果。
    在这里插入图片描述
    注册中心出现数据
    在这里插入图片描述

    2.4、搭建消费者

    2.4.1、基于Ribbon+RestTemplate的消费者

    1)在上面项目上右键-》New-》Module-》创建一个项目
    2)编写配置文件application.yml

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8001/eureka/
    server:
      port: 8003
    spring:
      application:
        name: ribbon-consumer
    

    3)启动类配置

    package com.cloud.consumer;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;
    
    @SpringBootApplication
    @EnableEurekaClient
    public class CustomerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(CustomerApplication.class, args);
        }
    
        @Bean
        @LoadBalanced
        RestTemplate restTemplate(){
            return new RestTemplate();
        }
    
    }
    
    

    4)创建CustomerController

    package com.cloud.consumer.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    @RestController
    public class ConsumerController {
    
        @Autowired
        RestTemplate restTemplate;
    
        @GetMapping(value = "/index")
        public String index() {
            return "消费者ribbon consumer--------   --- " + restTemplate.getForObject("http://ribbon-provider/index", String.class);
        }
    
    
    }
    

    5)启动项目,访问消费者http://localhost:8003/index。
    消费者ribbon consumer-------- — 是消费者自身的信息,
    hello provider!是提供者提供的内容
    在这里插入图片描述
    6)访问注册中心http://localhost:8001/,可以看的提供者和消费者都已经注册成功。
    在这里插入图片描述

    2.4.2、基于Feign的消费者

    基于Feign的消费者

    2.5、搭建zuul

    1)在上面项目上右键-》New-》Module-》创建一个项目
    2)编写配置文件application.yml

    server:
      port: 8004   #端口号
    spring:
      application:
        name: Zuul  #注册名字
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8001/eureka/  #注册中心地址http://localhost:8001/eureka/
    zuul:
      routes:
        servicel:
          path: /hello/**   #外界请求路径名称
          service-id: ribbon-consumer  #服务名称 一般指的是消费者的名称 也可以是提供者的名称 这个名称需要和注册中心 一致
    

    3)启动类配置

    package com.example.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
    
    @SpringBootApplication
    @EnableEurekaClient //注册服务
    @EnableZuulProxy    //启用zuul代理
    public class ZuulApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ZuulApplication.class, args);
        }
    
    }
    

    4)启动测试
    注意:
    用户发出的所有请求都是先经过zuul的
    访问时其实还是访问的消费者的接口地址,只不过过滤了一下需要加一个配置文件中的请求路径的前缀而已。

    2.6、搭建熔断器Hystrix

    1)在上面项目上右键-》New-》Module-》创建一个项目
    2)编写配置文件application.properties

    # 这里只给一个端口号是为了看到效果
    server.port=8005   
    

    3)启动类配置

    package com.cloud.hystrix;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
    
    @SpringBootApplication
    @EnableHystrixDashboard //开启Hystrix
    public class HystrixApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(HystrixApplication.class, args);
        }
    
    }
    

    4)启动测试,看到野猪表示成功!localhost:8005/hystrix
    在这里插入图片描述
    在提供者中启用熔断器
    1)在提供者的pom中导入hystrix的依赖

    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>
    

    2)在提供者的注解上加一个注解

    @EnableCircuitBreaker启用熔断器监控
    或者是使用:@EnableHystrix 
    

    3)配置Servlet,Hystrix的数据采集 通过这个Servlet获取服务的状态 (HystrixMetricsStreamServlet)

    package com.cloud.hystrix.config;
    
    import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration  //标志是一个配置类
    public class HystrixConfig {
    
        @Bean
        public ServletRegistrationBean registra(){
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
            servletRegistrationBean.setServlet(new HystrixMetricsStreamServlet());
            servletRegistrationBean.addUrlMappings("/actuator/hystrix.stream"); //查看监控的url
            servletRegistrationBean.setName("hystrixMetricsStreamServlet"); //起一个名字
            return servletRegistrationBean;
        }
    }
    

    4)启动并测试

    展开全文
  • SpringBoot微服务搭建代码下载,里面包含SpringBoot服务端及一个客户端,是一个简单的实例。
  • springcloud_fuxi:订单微服务搭建完成
  • SpringCloud 微服务 搭建

    2020-07-31 16:09:27
    记录SpringCloud微服务 搭建 过程产生的 BUG - [ ] com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server client 连接 服务端 失败 : 排查问题 : (账号密码...

    微服务思想理解

    1. 单体横向架构思想:整个项目由一个大工程搞定。(采用分布式部署,做负载均衡。也能解决日活跃量百万级别项目;缺点:维护成本高,打包部署困难,新员工接手难度大。牵一发而动全身)

    2. SOA架构:面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型架构思想,经历过SOA架构的dubbo项目。采用服务注册中心管理服务;(针对活跃高的服务,可以进行分布式部署。服务之间的调用也有负载均衡,通过网关进行统一管理。跟微服务区别在,服务界限的划分)

    3. springcloud微服务 : 针对于类似springcloud微服务(当然dubbo也能做,但是没有springcloud方便,更加好维护);(在soa的基础上,做到服务的划分尽可能清晰,服务之间的耦合尽可能低。例如:每个服务都应该有自己服务的数据库服务)

    springcloud的访问模式 : 前端----网关----XXXX服务(内部调用feign。经过服务中心)

    记录SpringCloud微服务 搭建 过程产生的 BUG

    - [ ] com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

    client 连接 server 服务端 失败 :
    排查问题 : (账号密码是否正确)(注册中心地址是否完全一致)(实在找不到原因,看下springboot的包是否导入全了,例如 web,core等一系列的包)

    展开全文
  • 第2章 Eureka微服务搭建 1. Eureka微服务搭建 1.1 Eureka介绍 1.1.1 Eureka是什么? Eureka是基于REST服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移,功能类似于Dubbo的注册中心Zookeeper,...

    第2章 Eureka微服务搭建

    1. Eureka微服务搭建

    1.1 Eureka介绍

    1.1.1 Eureka是什么?

    Eureka是基于REST服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移,功能类似于Dubbo的注册中心Zookeeper,所以在 Spring Cloud微服务架构中通常用作注册中心。我们称这个服务为 Eureka Server还有一个与之交互的客户端称之为 Eureka Client

    1.1.2 Eureka实现原理

    在这里插入图片描述
    Eureka采用C-S的设计架构,即包括了Eureka Server(服务端),Eureka client(客户端)

    • Eureka Server提供服务注册,在各个节点启动后,会在Eureka Server中进行注册
    • Eureka Client是一个Java客户端,用于和服务端进行交互,同时客户端也是一个内置的默认使用轮询负载均衡算法的负载均衡器。在应用启动后会向Eureka Server发送心跳(默认30秒)。如果Eureka Server在多个心跳周期内没有接受到某个节点的心跳,Eureka Server将会从服务注册表中将这个服务移出(默认90秒)。
    • 服务发现有两种模式:一种是客户端发现模式,一种是服务端发现模式。Eureka采用的是客户端发现模式

    1.2 Eureka微服务搭建

    1.2.1 pom.xml配置

    创建模块thankson-springcloud-eureka并修改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">
        <parent>
            <artifactId>changgou</artifactId>
            <groupId>com.thankson.springcloud</groupId>
            <version>1.0.0</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>thankson-springcloud-eureka</artifactId>
        <packaging>jar</packaging>
        <description>注册中心</description>
        
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
        </dependencies>
    </project>
    

    1.2.2 appliation.yml配置

    在resources目录下创建配置文件application.yml

    server:
      port: 8761
    
    spring:
      application:
        name: eureka
    eureka:
      instance:
        #设置当前实例的主机名称
        hostname: localhost
        #定义服务失效的时间,单位:秒
        lease-expiration-duration-in-seconds: 20
        #定义服务续约任务(心跳)的调用间隔,单位:秒
        lease-renewal-interval-in-seconds: 10
        #不使用主机名来定义注册中心的地址,而使用IP地址的形式,如果设置了属性,则使用该属性配置的IP,否则自动获取除环路IP外的第一个IP地址
        prefer-ip-address: false
        instance-id: ${spring.cloud.client.ip-address}:${server.port}
        #IP地址
        ip-address: localhost
        #状态页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置
        status-page-url-path: /info
        #健康检查页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置
        health-check-url-path: /health
        #健康检查页面的URL,绝对路径
        health-check-url: /
      client:
        #是否注册为服务 服务端必配,禁止自生注册
        register-with-eureka: false
        #是否检索服务 服务端必配,表示自己就是注册中心,不需要去检索服务
        fetch-registry: false
        #eureka默认空间的地址
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
        healthcheck:
          enabled: true
        registry-fetch-interval-seconds: 5
      server:
        #关闭自我保护(生产时打开该选项) 关闭注册中心的保护机制,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除
        enable-self-preservation: false
        #扫描失效服务的间隔时间(缺省为60*1000ms)
        eviction-interval-timer-in-ms: 10000
    

    1.2.3 添加启动类

    com.thankson.springcloud.eureka文件夹下创建EurekaApplication.java

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

    1.2.4 测试

    启动EurekaApplication.java,访问链接http://localhost:8761
    在这里插入图片描述

    2. common模块搭建

    thankson-springcloud-common为父工程创建出thankson-springcloud-common-utilthankson-springcloud-common-component两个模块。

    2.1 功能介绍

    common模块结构如下:
    在这里插入图片描述

    thankson-springcloud-common-util

    工具类公共模块  包含DateUtils、RandomUtils、ReflectionUtil、DateUtils等
    

    thankson-springcloud-common-component

    组件公共模块:主要包括canal、redis、rabbitMQ等
    

    2.2 util模块

    在src/main/java目录下创建文件夹 com.thankson.common.util,并添加需要用到的工具类
    在这里插入图片描述

    2.3 component模块

    在src/main/java目录下创建文件夹 com.thankson.common.component,并添加需要用到的工具类
    在这里插入图片描述

    3. 结束语

    至此,eureka与common模块已开发完毕。

    展开全文
  • SpringBoot+SpringCould+eureka+阿里云仓库,完整微服务搭建。包中包含项目源码。部署上就能直接使用。
  • jHipster微服务搭建遇到的问题
  • SpringCloud微服务搭建(一)和(二)中,说白了就是建了一个eurekaServer而已 既没用到maven的聚合工程,也没真正地开始注册服务。接下来给大家带点干货! 想要了解微服务的注册,首先要了解什么是消费者和提供者...
  • 学习计划安排如下:继续后台管理系统的学习昨天是搭建了前端页面,今天开始后端微服务搭建。基础微服务、商品微服务搭建,本身还未涉及到具体的业务处理。其中有一个比较复杂的点在于自定义异常。一、创建基本...
  • Nginx微服务搭建-下载器 1、pcre软件安装 准备目录:mkdir -p /data/{server, softs}/nginx 切换目录:cd /data/softs 下载:wget ...
  • SpringCloud微服务搭建详解

    万次阅读 多人点赞 2018-09-23 16:13:08
    具体关于SpringCloud介绍请参考其他文章,下面主要讲解SpringCloud搭建微服务的步骤。 本次案例主要分为以下几个微服务 提供者服务用于操作user表,进行增删改查; 消费者服务用于请求提供者服务,进行增删...
  • redis微服务搭建

    2019-10-22 23:26:23
    缓存微服务搭建 1.搭建项目结构 hrm-redis-parent hrm-redis-client hrm-redis-service-2030 2.搭建 hrm-redis-service-2030 导入依赖 <dependencies> <!--引入swagger支持--> <dependency>...
  • 想到微服务搭建博客其实挺多的,那就用微服务简单做个记账的网站,并部署在站点 1. 首先除了要了解什么是微服务之外,因为是用Springboot框架,还要了解一下父子项目,thymeleaf,spring这些东西 2. 写程序注意一...
  • 底层微服务搭建

    2020-04-05 23:34:00
    1.微服务目前已有解决方案 spring cloud netflix dubbo zookeeper spring cloud alibaba 微服务架构 1.数据库,基本的表设计和创建 2.服务构建 3.编写服务代码
  • Hyperf 框架微服务搭建

    千次阅读 2020-05-13 16:44:31
    新公司采用Hyperf框架搭建一个大型的分布式微服务系统。 首先明确微服务的概念:一个大的服务分解成为多个小服务,这些小服务又能独立运行,这些小服务就是微服务。 而集成的多个微服务服务器就是分布式 Hyperf...
  • SpringBoot微服务搭建指南【1】架构设计最终整体架构技术选型项目调用关系图项目模块说明 最终整体架构 技术选型 SpringBoot shiro JWT redis dubbox activeMQ MySQL druid zookeeper Mybatis swagger 项目调用...
  • springboot springcloud微服务搭建测试 1)step 1 https://blog.csdn.net/csuzxm2000/article/details/86511847 2) step 2 创建Eureka注册中心https://blog.csdn.net/csuzxm2000/article/details/86509088 注意:...
  • 接上一篇:Spring cloud微服务搭建(六)——Ribbon负载均衡 在微服务中,有两种调用方式: Ribbon+RestTemplate Feign Feign是社区产品,符合Java面向接口编程的开发风格。Feign内置了Ribbon,本质上还是通过Ribbon...
  • 微服务搭建数据库系统

    千次阅读 2018-07-19 22:54:43
    数据访问层是微服务系统中比较重要的一环,怎样通过 SpringBoot 搭建数据库环境,单数据源与多数据源的比较与实现方式,以及怎样结合 MyBatis 不仅能够实现自动实现数据库表与实体类、Dao 层的自动生成,还能够实现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,015
精华内容 5,206
关键字:

微服务搭建