关于Spring Cloud的思考和总结

关于spring cloud生态和大数据的的一些思考 Java开发与大数据开发是两条不同的路,但最后殊途同归,目的都是做集群。 一、Java开发 技术栈有Spring、SpringMVC、Mybatis、SpringCloud、SpringBoot 二、大数据开发 阅读详情

博主开发使用了Spring Cloud,使用过程中的一些学习和经验,体会通过本博文进行记录。

 以前的架构,单体应用:

 

 加入ESB,通过总线进行调用:

 

 

微服务架构:

 

 

区别:

  •  SOA架构主要针对企业级,采用ESB服务(ESB企业服务总线),非常重,需要序列化和反序列化,采用XML格式传输。
  •  微服务架构主要用于互联网公司,轻量级,小巧,独立运行,基于HTTP+Rest+JSON格式传输
  •  ESB可以说是传统中间技术与XML、Web服务等技术相结合的产物。

 

单体架构存在的缺点:

  •  复杂性逐渐变高
  •  技术债务主键上升
  •  部署速度主键变慢
  •  阻碍技术创新
  •  无法按需伸缩

微服务概念论文翻译版参考:https://www.cnblogs.com/beanbag/p/9911452.html

 

  •  简而言之,微服务架构风格[1]这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务,我们仅做最低限度的集中管理。(去中心化)
  • “微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通信机制相互沟通(通常是基于HTTP的Restful API).每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建"
  • 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

 

微服务架构应该具备的特性
  • 每个微服务可独立运行在自己的进程里。
  • 一系列独立运行的微服务共同构建起整个系统。
  • 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如订单管理、用户管理等。
  • 微服务之间通过一些轻量的通信机制进行通信,例如通过RPC或者RESTful API进行调用。
  • 可以使用不同的语言与数据存储技术。
  • 全自动的部署机制。

 

 

微服务优点:

  • 易于开发和维护
  •  启动较快 
  •  局部修改容易部署
  •  技术栈不受限
  •  按需伸缩
  •  DevOps

 

经验总结:

Spring Boot banner可以定制的

各种依赖后,Tomcat也引入了。

Spring Boot 可配置项很多,比如 context path 我们之前在Servlet 中可以配置的

 

Spring Boot可以通过gradle最终打成的是boot jar  全部依赖都在里面,非常独立。打成一个可执行的jar包。通过命令行可以直接运行。web.xml也没有了。但是也可以通过Spring提供的入口方式恢复,但是很多情况下是没必要的。

 

解压后:

 

 

Jar包里面的内容解释:

 1.BOOT-INF:里面包含的是:

 

 开发的编写的Java编译后的class字节码。 还有依赖的Jar包。 配置文件。

 2.META-INF:

 

 其中maven:

 

 

    MANEFST.MF: 清单文件,描述可执行jar包的一些信息。

 3. org的包结构里面的内容。非常重要。

Spring Boot集成 dubbo.在使用dubbo时候,dubbo会提供一个starter.

 

Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置修改建议 一、项目需求 在开发过程中,由于技术的不断迭代,为了提高开发效率,需要对原有项目的架构做出相应的调整。 二、存在的问题 为了不影响项目进度,架构调整初期只是把项目做了简单的maven管理,引入springboot并未做spring cloud微服务处理。但随着项目的进一步开发,急需拆分现有业务,做微服务处理。因此架构上的短板日益突出。spring cloud config 无法完全应用,每次... 阅读详情

相关推荐

基于淘宝商城用户购物行为数据分析系统

本文使用HIve+superset技术对阿里云天池提供的淘宝用户购物数据进行处理分析,得到有价值的信息并对平台提出有建设性意义的意见。

m0_51388399的博客 2821

SpringCloud常见面试题总结二

一、简介 最近在忙项目,差不多半个月没有写博客,今天正逢周末,整理一些常见的SpringCloud面试题。 二、面试题 【a】SpringCloud 和Dubbo区别? 区别 SpringCloud Dubbo 服务调用方式 Rest Api RPC 注册中心 可以是eureka,也可以是zookeeper zookeeper 网关 服务网关,dubbo本身没有实现,只能通过其他第三方技术整合 springcloud有Zuul路由网关,作.

weixiaohuai的博客 1024

点云数据增强及预处理

数据增强: 1. random world flip:沿着x或者y轴,翻转点云 点云的x或者y,要翻转 3d box中心的x或者y,要翻转 3d box的朝向要翻转 point segmentation label,点云的相对顺序没有发生变化 2. random_world_rotation:沿着点云原点,旋转点云 点,x,y,绕z轴旋转 3d box,绕z轴旋转,中心和朝向都要变化 point segmentation label,点云的相对顺序没有发生变化 3. random_world_scaling

huang_victor的博客 4011

Springboot快速构建jar包启动web项目

Springboot快速构建jar包启动web项目 前言: 传统的web项目打包方式为war包, 打成war包之后要放到tomcat的webapps目录下启动,造成不必要的麻烦.本文从war包jar包结构分析,怎么快速将war包修改为jar包启动.方便排查错误. 1. war包结构分析 1. war包解压 war包结构主要有两个目录.WEB-INF 和META-INF. WEB-INF使用we...

li819059787的博客 2441

手把手教你用内核远程call实现64位进程注入(附完整ShellCode示例)

本文深入探讨了在Windows 64位环境下,通过内核态直接操作线程TrapFrame结构实现进程注入的高级技术。文章提供了从驱动框架设计、用户态-内核态通信,到定位修改TrapFrame、编写Shellcode及执行环境恢复的完整实战指南,并附有详细的代码示例,为安全研究人员和开发者提供了绕过用户态检测、实现底层远程代码执行的新思路。

weixin_28396629的博客 346

SimNow模拟环境实战:用vnpy_ctp连接期货市场的5个关键配置步骤

本文提供了一份详细的量化交易实战指南,重点讲解如何使用vnpy_ctp插件连接SimNow期货模拟环境的5个关键配置步骤。内容涵盖SimNow环境选择、vnpy_ctp核心参数解析、实战连接脚本编写、深度排错技巧以及向实盘迁移的准备,旨在帮助量化交易开发者快速搭建可靠的测试环境,避免常见陷阱。

weixin_29063035的博客 1274

关于WEB-INF与META-INF的区别

关于WEB-INF与META-INF的区别关于WEB-INF与META-INF的区别 关于WEB-INF与META-INF的区别 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 1.META-INF存在程序入口相关信息,在每个jia包中都会有这个文件夹 一个META-I...

weixin_43203497的博客 7355

YF-S401水流量传感器在STM32上的精准计量实现

本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。

rainy的博客 897

jar 包中的META-INF文件夹下面的MANIFEST.MF

<br />个文件夹里面有文件:MANIFEST.MF<br />Manifest-Version: 1.0<br />Ant-Version: Apache Ant 1.7.1<br />Created-By: 14.0-b16 (Sun Microsystems Inc.)<br />Main-Class: com.hadeslee.yoyoplayer.player.ui.Main<br />Class-Path: lib/commons-codec-1.3.jar lib/commons-httpc

xiechao240的专栏 2336

FPGA实战:AXI BRAM Controller配置避坑指南(Vivado 2023版)

本文详细解析了Vivado 2023环境下AXI BRAM Controller的配置技巧与避坑指南,涵盖AXI4协议转换、BRAM地址空间配置、信号异常处理及突发传输优化等核心内容。针对写时序冲突、跨时钟域处理等常见问题提供实用解决方案,帮助开发者提升FPGA系统性能与稳定性。

q1w3e5r7t9y的博客 343

【SECS】初识SECS协议

项目标题的第一位和第二位告诉下面有多少字节表示项目的长度。而项目的长度是指项目标题后面的字节数,这里第一个字节就是项目标题。1个字节可以表示的最大长度是0-255,所以只要项目标题后面的字节数小于等于254,都是0x01。

weixin_48618536的博客 1647

20000 字的 Spring Cloud 总结

若有收获,请记得分享和转发哦首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟。什么是Spring cloud构建分布式系统不需要复杂和容易出...

IT技术精选文摘 215

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

Dubbo和Spring Cloud简单对比及思考

首先做一个简单的功能对比: Dubbo Spring Cloud 服务注册中心 Zookeeper Spring Cloud Netflix Eureka 服务调用方式 RPC REST API 服务监控 Dubbo-monitor Spring Boot Admin 断路器 不完善 Spring Cloud Netflix Hystrix 服务网关 无 Spring Cloud Netflix Zuul...

zollty的专栏 636

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring Cloud Alibaba到底坑不坑?

点击蓝色“程序猿DD”关注我哟加个“星标”,不忘签到哦之前我发过一篇《说说我为什么看好Spring Cloud Alibaba》,然后这两天有网友给我转了这篇文章《坑爹项...

程序猿DD 6346

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解

加载规则 在《Srping Cloud Alibaba基础教程:使用Nacos作为配置中心》 一文中,我们的例子完全采用了默认配置完成。所以,一起来看看Spring Cloud Alibaba Nacos模块默认情况下是如何加载配置信息的。 首先,回顾一下,我们在入门例子中,Nacos中创建的配置内容是这样的: Data Id:alibaba-nacos-config-client Group:...

P923284735的博客 588

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

微服务架构下的负载均衡:Spring Cloud如何实现高效流量分配

Bean// 实现权重策略“好的架构不是增加复杂度,而是让复杂系统运行得简单优雅”三步开启负载均衡添加依赖用注解RestTemplate通过服务名而非IP调用其他服务进阶路线基础场景:默认轮询策略性能优化:权重分配 + 最小连接数高可用方案:跨可用区多集群负载💡最后思考当你的奶茶店扩展到100家分店(服务实例),如何设计全球用户的智能调度系统?欢迎在评论区分享你的架构设计!技术更新迭代,不变的是对高效与稳定的追求—— 让你的微服务在流量洪峰中稳如泰山🏔️。

全栈开发工程师 622

spring 获取公网ip_spring 获取服务器ip

Spring Cloud开发人员如何解决服务冲突和实例乱窜?(IP实现方案)一、背景在我上一篇文章《Spring Cloud开发人员如何解决服务冲突和实例乱窜?》中提到使用服务的元数据来实现隔离和路由,有朋友问到能不能直接通过IP来实现?本文就和大家一起来讨论一下这个问题二、可行性分析要实现通过IP来隔离和路由的话有一个非常关键的点需要解决,就是怎样实现IP可辨...文章zlt20002020-0...

weixin_39913117的博客 3375

spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法...

spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法 前言 本篇接着<spring boot / cloud (八) 使用RestTemplate来构建远程调用服务>这篇博客来继续讨论微服务间接口...

chengrensi8974的博客 769

Spring cloud 多版本控制及灰度发布

在我们使用spring mvc单体架构时, 我们可以通过uri,或者请求头做多版本路由,虽然同一个功能需要维护多个版本的接口,但是对于系统而言,不会因为新增一个接口版本而影响到老用户。当我们使用spring cloud构建微服务平台时,也希望能做到这一点,然而spring cloud并没有提供这个功能。 在springcloud的微服务体系中,大多是使用eureka做为注册中心,ribbon做为...

zxing的博客 5889

《Spring Cloud FeignClient Bean冲突排查与解决指南——从错误代码到实战方案》

Spring容器在启动时会检测到重复的FeignClientSpecification等Bean定义,若未配置允许Bean覆盖(spring.main.allow-bean-definition-overriding=true),则会抛出异常导致启动失败。

weixin_44591656的博客 1090

微服务架构的基础框架选择:Spring Cloud还是Dubbo?

微服务架构的基础框架选择:Spring Cloud还是Dubbo?

liubin5620的博客 296

spring-cloud - 采用服务消费者(Feign)调用接口,遇到的坑

错误总结 忘加配置导致一直报错 eureka: client: serviceUrl: defaultZone: http://ip:8761/eureka/ 少加@EnableDiscoveryClient,报错 @SpringBootApplication //@EnableTransactionManagement启动事务 @ComponentScan( baseP...

吴灵辉的博客 1631

spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法

spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法前言本篇接着场景分析防止越权行为在系统中添加权限相关的控制,主要是为了增加系统的安全性,总结下来主要是为了防止如下的两种越权行为: 横向越权 (指的是攻击者尝试访问与他拥有相同权限的用户的资源) 纵向越权 (指的是一个低级别攻击者尝试访问高级别用户的资源) 所以说

wangkang80的博客 2710

Spring Cloud Alibaba基础教程:Nacos的集群部署

集群搭建 根据官方文档的介绍,Nacos的集群架构大致如下图所示,(省略了集中化存储信息的MySql): 下面我们就来一步步介绍,我们每一步的搭建细节。 MySql数据源配置 对于数据源的修改,我们上一篇已经说过了。我们再来复习一遍。 在进行集群部署之前,先完成对MySql数据源的初始化和配置。主要分以下两步: 第一步:初始化MySql数据库,数据库初始文件:nacos-mysql.sql,该...

P923284735的博客 1605
上一篇: Synchronize深入
下一篇: Spring MVC源码分析
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值