精华内容
下载资源
问答
  • 微服务框架(sringcloud) 1.springboot和springcloud的关系 springboot单独存在的意义不大,独立...当单体系统纵向拆分,拆分后的独立系统就叫微服务,每个微服务都专注一个功能领域,领域之间通过服务调用传递数...

    微服务框架(sringcloud)

    1.springboot和springcloud的关系

    springboot单独存在的意义不大,独立运行、自动配置,完全是为了微服务框架而创建的,springcloud框架必须基于springboot工程才可以实现

    2.微服务框架

    2.1.什么是微服务

    当单体系统纵向拆分,拆分后的独立系统就叫微服务,每个微服务都专注一个功能领域,领域之间通过服务调用传递数据

    2.2.什么是微服务框架

    当微服务特别庞大的时候,就需要从管理、监控角度出发,对整个集群做到架构级别的技术整合-这种技术就称为微服务框架

    2.3.微服务框架技术

    常见的微服务框架有springcloud、dubbo(阿里,12年宣布停更,17年恢复更新)
    springcloud:一种轻量级的,组件丰富全面的微服务框架技术,核心:注册发现组件eureka(不能由别的组件代替),实现的http的协议非常丰富,开发投入成本较低
    dubbo:组件没有springcloud丰富,注册发现组件可以是eureka(http协议),redis,Zookeeper(rpc协议),使用rpc协议的技术,性能高,而http协议灵活度高
    技术选型:
    springcloud开发成本低,所有组件都是现成的,可以直接使用,更新比较及时,对应市面各种新技术做出更新
    dubbo:性能高是dubbo重要优点,但是开发成本高

    3.springcloud

    springcloud组件
    1.eureka
    2.ribbon
    3.zuul
    4.feign
    5.hystrix
    6.spring cloud config

    展开全文
  • 微服务架构作为当前最流行的架构体系,它所集成的服务大都是轻量级的(这也是为什么叫微服务)。单个微服务内部实现逻辑简单,处理客户响应时间短,经常做一些数据的增删改查操作。一般来说2到3千行代码就可以实现一个...

    概述

    微服务架构作为当前最流行的架构体系,它所集成的服务大都是轻量级的(这也是为什么叫微服务)。单个微服务内部实现逻辑简单,处理客户请求时间短,经常做一些数据的增删改查操作。一般来说2到3千行代码就可以实现一个微服务。

    与轻量级的微服务对应的是重量级的算法服务。如何定义重量级服务呢?首先服务请求处理时间很长,一般在几分钟到几个小时都有可能,视处理的数据量大小而定;其次,算法的输入参数和输出结果的数据量都很大。由于以上两个原因,一般算法服务的并发能力都很弱(很多时候只允许同时处理一个请求,或者认为它并发量就是1).

    在微服务框架中如何集成这类算法服务呢? 我认为需要考虑三个方面:
    1. 算法服务自动发现和任务调度。
    2 .算法服务的输入参数和计算结果数据传递。
    3. 算法服务和任务状态监控。

    整体架构图

    这里写图片描述

    算法调度服务

    由于算法服务资源是有限的,算法服务的并发能力也很差或者说没有并发能力。我们需要一个算法调度服务来分配资源。算法服务部署后通过心跳注册(IP地址、服务状态等信息),算法调度服务就拿到了所有算法服务的状态和数量。

    Client应用从算法调度服务申请计算任务,新任务添加到任务队列里面(可以放到内存也可以放到数据库,推荐放到数据库,重启服务数据不丢失)。

    算法调度服务检测从算法服务上报的心跳,发现有算法服务空闲了,就从任务队列中取出一个任务交给它去执行。

    FTP服务器

    由于算法服务是重型化的,它需要的输入参数和计算后的结果 数据量都很大,直接通过restful接口传递不是特别合适。这里提供一种思路:采用文件的方式传递。输入参数和计算结果都通过JSON串的形式保存到文件,通过FTP上传和下载。

    监控进程

    监控进程实际上是算法服务的守护进程,和算法服务部署到同一个虚拟机或者docker容器里面。监控服务启动后就开始周期性的向调度服务发送心跳。

    这个监控进程不是必须的,如果算法服务本身实现了心跳上报的功能,就不需要了。但是如果要实现对算法服务的启停功能(kill进程,启动进程),那还是需要的。

    上报心跳

    上报心跳单独拿出来说,上报心跳实现了很多功能:算法服务注册,申请新任务,上报任务执行进度等。如果调度服务长时间收不到某个算法服务的心跳,会认为它已经掉线了,会通知运维人员定位问题。

    展开全文
  • 一个快速,轻量级和云原生微服务框架。 | | | | | | 为什么叫Light-4J Light意味着轻量级,闪电般的快速传输,并简化了如何使用现代Java SE进行编程以进行云原生部署的问题。 我为什么要这么做 从2000年初开始,我...
  • 微服务 RPC框架Dubbo

    2021-02-22 23:05:13
    基础知识1.1RPC什么叫RPCRPC基本原理1.2dubbo核心概念dubbo简介dubbo基本概念1.3dubbo环境搭建【windows】-安装zookeeper【windows】-安装dubbo-admin管理控制台【linux】-安装zookeeper【linux】-安装dubbo-admin...

    微服务 RPC框架Dubbo

    1.基础知识

    1.1RPC

    什么叫RPC

    RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

    RPC基本原理

    在这里插入图片描述在这里插入图片描述RPC两个核心模块:通讯,序列化。

    1.2dubbo核心概念

    dubbo简介

    Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。

    官网地址:https://dubbo.apache.org/zh/

    dubbo基本概念

    在这里插入图片描述

    服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
    服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
    注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
    监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
    
    调用关系说明
    1. 服务容器负责启动,加载,运行服务提供者。
    2.服务提供者在启动时,向注册中心注册自己提供的服务。
    3.服务消费者在启动时,向注册中心订阅自己所需的服务。
    4.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
    5.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
    6.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
    

    1.3dubbo环境搭建

    【windows】-安装zookeeper

    在这里插入图片描述

    【windows】-安装dubbo-admin管理控制台

    dubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。所以你不用在Linux上启动什么dubbo服务。
    但是为了让用户更好的管理监控众多的dubbo服务,官方提供了一个可视化的监控程序,不过这个监控即使不装也不影响使用。

    1、下载dubbo-admin
    https://github.com/apache/incubator-dubbo-ops
    在这里插入图片描述

    【linux】-安装zookeeper

    1. 安装jdk环境。
    2. 安装zookeeper
    3. 启动zookeeper
    4. 配置zookeeper
    

    【linux】-安装dubbo-admin管理控制台

    1. 安装Tomcat
    2. 安装dubbo-admin
    

    1.4dubbo-helloword

    在这里插入图片描述gmall-interface:公共接口层(model,service,exception…)在这里插入图片描述在这里插入图片描述

    1.5监控中心

    dubbo-admin

    图形化的服务管理页面;安装时需要指定注册中心地址,即可从注册中心中获取到所有的提供者/消费者进行配置管理。

    dubbo-monitor-simple

    简单的监控中心;
    在这里插入图片描述在这里插入图片描述

    1.6整合springboot

    在这里插入图片描述

    2.dubbo配置

    官网配置很详细:https://dubbo.apache.org/zh/docs/v2.7/user/configuration/xml/

    1、配置原则

    在这里插入图片描述JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口。
    XML 次之,如果在 XML 中有配置,则 dubbo.properties 中的相应配置项无效。
    Properties 最后,相当于缺省值,只有 XML 没有配置时,dubbo.properties 的相应配置项才会生效,通常用于共享公共配置,比如应用名。

    2、重试次数

    失败自动切换,当出现失败,重试其它服务器,但重试会带来更长延迟。可通过 retries=“2” 来设置重试次数(不含第一次)。

    重试次数配置如下:
    <dubbo:service retries="2" /><dubbo:reference retries="2" /><dubbo:reference>
        <dubbo:method name="findFoo" retries="2" />
    </dubbo:reference>
    

    注意:这里解释一下关于重试次数与幂等性的关系,幂等性指的是多次调用的结果相同,对于查询,更新状态,删除等操作,多次操作的结果是相同的,所以具有幂等性,重试才有意义,但是对于新增,与更新扣减库存等操作,每次调用结果都不相同,所以不具有幂等性,当然也不能重试。

    3、超时时间

    由于网络或服务端不可靠,会导致调用出现一种不确定的中间状态(超时)。为了避免超时导致客户端资源(线程)挂起耗尽,必须设置超时时间。

    在这里插入图片描述

    3.高可用

    1、zookeeper宕机与dubbo直连

    现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。

    原因:

    健壮性
    监控中心宕掉不影响使用,只是丢失部分采样数据
    数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
    注册中心对等集群,任意一台宕掉后,将自动切换到另一台
    注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯
    服务提供者无状态,任意一台宕掉后,不影响使用
    服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
    

    2、集群下dubbo负载均衡配置

    在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。
    负载均衡策略

    Random LoadBalance
    随机,按权重设置随机概率。
    在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
    RoundRobin LoadBalance
    轮循,按公约后的权重设置轮循比率。
    存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
    LeastActive LoadBalance
    最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
    使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
    ConsistentHash LoadBalance
    一致性 Hash,相同参数的请求总是发到同一提供者。
    当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。算法参见:http://en.wikipedia.org/wiki/Consistent_hashing
    缺省只对第一个参数 Hash,如果要修改,请配置 <dubbo:parameter key="hash.arguments" value="0,1" />
    缺省用 160 份虚拟节点,如果要修改,请配置 <dubbo:parameter key="hash.nodes" value="320" />
    

    3、整合hystrix,服务熔断与降级处理

    4.dubbo原理

    1、RPC原理

    在这里插入图片描述

    一次完整的RPC调用流程(同步调用,异步另说)如下: 
    1)服务消费方(client)调用以本地调用方式调用服务; 
    2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体; 
    3)client stub找到服务地址,并将消息发送到服务端; 
    4)server stub收到消息后进行解码; 
    5)server stub根据解码结果调用本地的服务; 
    6)本地服务执行并将结果返回给server stub; 
    7)server stub将返回结果打包成消息并发送至消费方; 
    8)client stub接收到消息,并进行解码; 
    9)服务消费方得到最终结果。
    RPC框架的目标就是要2~8这些步骤都封装起来,这些细节对用户来说是透明的,不可见的。
    

    2、netty通信原理

    Netty是一个异步事件驱动的网络应用程序框架, 用于快速开发可维护的高性能协议服务器和客户端。它极大地简化并简化了TCP和UDP套接字服务器等网络编程。

    BIO:(Blocking IO)
    在这里插入图片描述
    NIO (Non-Blocking IO)
    在这里插入图片描述Selector 一般称 为选择器 ,也可以翻译为 多路复用器,
    Connect(连接就绪)、Accept(接受就绪)、Read(读就绪)、Write(写就绪)
    Netty基本原理:
    在这里插入图片描述

    3、dubbo原理

    1、dubbo原理 -框架设计

    在这里插入图片描述

    config 配置层:对外配置接口,以 ServiceConfig, ReferenceConfig 为中心,可以直接初始化配置类,也可以通过 spring 解析配置生成配置类
    proxy 服务代理层:服务接口透明代理,生成服务的客户端 Stub 和服务器端 Skeleton, 以 ServiceProxy 为中心,扩展接口为 ProxyFactory
    registry 注册中心层:封装服务地址的注册与发现,以服务 URL 为中心,扩展接口为 RegistryFactory, Registry, RegistryService
    cluster 路由层:封装多个提供者的路由及负载均衡,并桥接注册中心,以 Invoker 为中心,扩展接口为 Cluster, Directory, Router, LoadBalance
    monitor 监控层:RPC 调用次数和调用时间监控,以 Statistics 为中心,扩展接口为 MonitorFactory, Monitor, MonitorService
    protocol 远程调用层:封装 RPC 调用,以 Invocation, Result 为中心,扩展接口为 Protocol, Invoker, Exporter
    exchange 信息交换层:封装请求响应模式,同步转异步,以 Request, Response 为中心,扩展接口为 Exchanger, ExchangeChannel, ExchangeClient, ExchangeServer
    transport 网络传输层:抽象 mina 和 netty 为统一接口,以 Message 为中心,扩展接口为 Channel, Transporter, Client, Server, Codec
    serialize 数据序列化层:可复用的一些工具,扩展接口为 Serialization, ObjectInput, ObjectOutput, ThreadPool
    

    2、dubbo原理 -启动解析、加载配置信息

    在这里插入图片描述

    3、dubbo原理 -服务暴露

    在这里插入图片描述

    4、dubbo原理 -服务引用

    在这里插入图片描述

    5、dubbo原理 -服务调用

    在这里插入图片描述

    展开全文
  • 运用Feign实现微服务之间的调用 Feign-概述 • Feign 是一个声明式的 REST 客户端,它用了基于接口的注解方式,很方便实现客户端配置。 • Feign 最初由 Netflix 公司提供,但不支持SpringMVC注解,后由 Spring...
    目标
    能够说出什么是 Feign
    说出工作原理以及解决了什么问题
    
    能够运用Feign实现远程服务调用
    运用Feign实现微服务之间的调用
    

    Feign-概述

    • Feign 是一个声明式的 REST 客户端,它用了基于接口的注解方式,很方便实现客户端配置。
    • Feign 最初由 Netflix 公司提供,但不支持SpringMVC注解,后由 SpringCloud 对其封装,支持了SpringMVC注
    解,让使用者更易于接受。

    Feign也叫伪装:
    Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。

    1. Feign-快速入门
    1. 在消费端引入 open-feign 依赖

      <!--feign-->
      <dependency>
      	<groupId>org.springframework.cloud</groupId>
      	<artifactId>spring-cloud-starter-openfeign</artifactId>
      </dependency>
      

      parent中需要引入cloud依赖

      <!--引入Spring Cloud 依赖-->
      <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>
      
    2. 编写Feign调用接口

      package com.ittest.consumer.feign;
      
      
      import com.ittest.consumer.config.FeignLogConfig;
      import com.ittest.consumer.domain.Goods;
      import org.springframework.cloud.openfeign.FeignClient;
      import org.springframework.web.bind.annotation.GetMapping;
      import org.springframework.web.bind.annotation.PathVariable;
      
      /**
       *
       * feign声明式接口。发起远程调用的。
       *
       String url = "http://FEIGN-PROVIDER/goods/findOne/"+id;
       Goods goods = restTemplate.getForObject(url, Goods.class);
       *
       * 1. 定义接口
       * 2. 接口上添加注解 @FeignClient,设置value属性为 服务提供者的 应用名称
       * 3. 编写调用接口,接口的声明规则 和 提供方接口保持一致。
       * 4. 注入该接口对象,调用接口方法完成远程调用
       */
      @FeignClient(value = "FEIGN-PROVIDER")
      public interface GoodsFeignClient {
      
          @GetMapping("/goods/findOne/{id}")
          public Goods findGoodsById(@PathVariable("id") int id);
      
      }
      
      
    3. 在启动类 添加 @EnableFeignClients 注解,开启Feign功能

      package com.ittest.consumer;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
      import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
      import org.springframework.cloud.openfeign.EnableFeignClients;
      
      @EnableDiscoveryClient // 激活DiscoveryClient
      @EnableEurekaClient
      @SpringBootApplication
      
      @EnableFeignClients //开启Feign的功能
      public class ConsumerApp {
          public static void main(String[] args) {
              SpringApplication.run(ConsumerApp.class,args);
          }
      }
      
    4. 测试调用

      package com.ittest.consumer.controller;
      
      import com.ittest.consumer.domain.Goods;
      import com.ittest.consumer.feign.GoodsFeignClient;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.web.bind.annotation.GetMapping;
      import org.springframework.web.bind.annotation.PathVariable;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RestController;
      import org.springframework.web.client.RestTemplate;
      
      @RestController
      @RequestMapping("/order")
      public class OrderController {
      
          @Autowired
          private RestTemplate restTemplate;
          @Autowired
          private GoodsFeignClient goodsFeignClient;
      
          @GetMapping("/goods/{id}")
          public Goods findGoodsById(@PathVariable("id") int id){
              Goods goods = goodsFeignClient.findGoodsById(id);
              return goods;
          }
      }
      

    注意

    ①Feign接口中的方法名及请求类型要与被调用方保持一致

    ②Feign接口中的@PathVariable(“id”) 中(“id”)不可以省略,否则会报 java.lang.IllegalStateException: PathVariable annotation was empty on param 0.

    ③Feign接口中返回值如果是类,类必须要有无参构造,否则会报 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.ittest.consumer.domain.Goods (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

    2. Feign-超时配置
    # 设置Ribbon的超时时间
    ribbon:
      ConnectTimeout: 1000 # 连接超时时间 默认1s
      ReadTimeout: 3000 # 逻辑处理的超时时间 默认1s
    
    3. Feign-日志记录

    ①设置日志级别,只支持debug

    # 设置当前的日志级别 debug,feign只支持记录debug级别的日志
    logging:
      level:
        com.ittest: debug
    

    ②声明feign的配置类

    package com.ittest.consumer.config;
    
    import feign.Logger;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class FeignLogConfig {
        /*
            NONE,不记录
            BASIC,记录基本的请求行,响应状态码数据
            HEADERS,记录基本的请求行,响应状态码数据,记录响应头信息
            FULL;记录完成的请求 响应数据
         */
        @Bean
        public Logger.Level level(){
            return Logger.Level.FULL;
        }
    }
    
    

    ③启用bean @FeignClient(configuration = XxxConfig.class)

    @FeignClient(value = "FEIGN-PROVIDER",configuration = FeignLogConfig.class)
    public interface GoodsFeignClient {
        @GetMapping("/goods/findOne/{id}")
        public Goods findGoodsById(@PathVariable("id") int id);
    
    }
    
    展开全文
  • 一个比Spring Boot快44倍的Java框架

    万次阅读 多人点赞 2019-03-26 08:48:16
    最近栈长看到一个框架,官方号称可以比 Spring Boot 快 44 倍,居然这么牛逼,有这么神奇吗?今天带大家来认识一下。...很简单,翻译过来就是:一个快速、轻量级和更高效的微服务框架。 为什么叫light-4j? 全称应...
  • 不过我们既然要搞微服务,还是得准备点什么.仓里有余粮,不会心慌慌. 基础框架部分,我们就提供统一的通讯对象,统一的配置信息,规定统一的异常处理,维护项目统一的jar包加载.因为我们需要做到更细腻的拆分粒度,能够...
  • 首先我们知道swoole是可以做到多端口监听的,如果是多端口监听我们的FD是公用的需要自行分别是什么协议消息不可混用。 直播我们就要用到一个转码工具ffmpeg的东西:点击自行下载。 依赖安装环境 yum install ...
  • 最近栈长看到一个框架,官方号称可以比 Spring Boot 快 44 倍,居然这么牛逼,有这么神奇吗?今天带大家来认识一下。...很简单,翻译过来就是:一个快速、轻量级和更高效的微服务框架。 为什么叫light-4j?...
  • 谈及微服务,作为当前主流的企业框架Spring,它提供了一整套相关的顶级项目,能让开发者快速的上手实现自己的应用,今天就介绍下Spring旗下各个顶级项目: Spring IO platform:用于系统部署,是可集成的,构建...
  • 在分布式、微服务盛行的今天,绝大部分项目都采用的微服务框架,前后端分离方式。题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那...
  • 什么是SpringCloud SpringCloud:离不开SpringBoot,属于依赖关系,关注全局的服务治理框架,为各个服务之间提供组件,配置管理、服务发现、断路器、路由、等集成服务。 微服务之间是怎么调用的 服务端需要把...
  • 前言 前段时间,我向一位在阿里的朋友寻求进大厂的秘诀,他分享给我一份阿里内部资料——JAVA核心进阶手册,仔细翻阅一番才知道里面收纳整理的知识可真是齐全,不得不来感叹一番… ...微服务架构:RPC+SpringBoot+
  • 之前是fescar,后来改名为seata 什么是Seata? 一种分布式事务解决方案,具有高性能和易于使用的微服务架构。 微服务中的分布式事务问题 让我们想象一下传统的单片应用程序。其业务由3个模块构成。他们使用单个...
  • 前言在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;...
  • 在有些人眼里:中台就是技术平台,像微服务开发框架、Devops平台、PaaS平台,容器云之类的,人们都它“技术中台”。 在有些人眼里:中台就是微服务业务平台,像最常见的什么用户中心,订单中心,各种微服务集散地...
  • 在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员...
  • 在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员...
  • 微服务是一种架构模式,叫微服务架构更合理,就是把一个系统中的各个功能点都拆开为一个个的小应用然后单独部署,同时因为这些小应用多,所以需要一些办法来管理这些小应用。 SpringCloud是什么 简单来说,Spring ...
  • 到底什么是中台?

    2021-01-17 15:16:07
    在有些人眼里:中台就是技术平台,像微服务开发框架、Devops平台、PaaS平台,容器云之类的,人们都它“技术中台”。 在有些人眼里:中台就是微服务业务平台,像最常见的什么用户中心,订单中心,各种微服务集散地...
  • 在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员...
  • light-4j真的比springboot快44倍吗?

    千次阅读 2019-05-15 21:09:23
    最近看到一个框架,官方号称可以比 Spring Boot 快 44 倍,居然这么牛逼,有这么神奇吗?今天带大家来认识一下。 这个框架名叫:light-4j。 官网简介:A fast, lightweight and more productive...为什么叫light-4...
  • 漫谈中台产品

    千次阅读 2019-12-30 23:46:33
    在有些人眼里,中台就是技术平台,像微服务开发框架、Devops平台、PaaS平台,容器云之类的,人们都它“技术中台”。 在有些人眼里,中台应该是组织的事情,在释放潜能:类似于企业内部资源调度中心和内部创新孵化...
  • 什么要用RSocket

    2021-03-14 23:06:14
    普鲁士Java(因为我英文名bruce),也可以我社会文,目前专注于微服务。 关于为什么要用RSocket,官网给了详细说明:https://rsocket.io/docs/motivations 基于大家可能和我一样英文不好,我再次勉为其难...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

什么叫微服务框架