• Spring Cloud Alibaba


    单体应用

    优点:

    1、系统的简易性:系统语言风格、业务结构,接口格式均具有一致性,服务都是耦合在一起的,不存在各个业务通信问题。

    2、易于测试:单体应用一旦部署,所有的服务或特性就都可以使用了,简化了测试过程,无需额外测试服务间的依赖,测试均可在部署完成后开始。

    3、易于部署与升级:相对于微服务架构中的每个服务独立部署,单体系统只需将单个目录下的服务程序统一部署和升级。

    4、较低的维护成本:只需维护单个系统即可。运维主要包括配置、部署、监控与告警和日志收集四大方面。相对于单体系统,微服务架构中的每个服务都需要独立地配置、部署、监控和日志收集,成本呈指数级增长。

    缺点:

    1、复杂性高:由于是一个单体的系统,所以整个系统的模块是耦合在一起的,模块的边界比较模糊、依赖关系错综复杂。功能的调整,容易带来不可知的影响和潜在的bug风险。

    2、服务性能问题:单体系统遇到性能瓶颈问题,只能横向扩展,增加服务实例,进行负载均衡分担压力。无法纵向扩展,做模块拆分。

    3、扩缩容能力受限:单体应用只能作为一个整体进行扩展,影响范围大,无法根据业务模块的需要进行单个模块的伸缩。

    4、无法做故障隔离:当所有的业务功能模块都聚集在一个程序集当中,如果其中的某一个小的功能模块出现问题(如某个请求堵塞),那么都有可能会造成整个系统的崩溃。

    5、发布的影响范围较大:每次发布都是整个系统进行发布,发布会导致整个系统的重启,对于大型的综合系统挑战比较大,如果将各个模块拆分,哪个部分做了修改,只发布哪个部分所在的模块即可。


    SOA

    微服务

    http+json(restful)进行传输

    1 单一职责

    微服务架构中的每个节点高度服务化,都是具有业务逻辑的,符合高内聚、低耦合原则以及单一职责原则的单元,包括数据库和数据模型;

    不同的服务通过“管道”的方式灵活组合,从而构建出庞大的系统。

    2 轻量级通信

    通过REST API模式或者RPC框架,实现服务间互相协作的轻量级通信机制。

    3 独立性

    在微服务架构中,每个服务都是独立的业务单元,与其他服务高度解耦,只需要改变当前服务本身,就可以完成独立的开发、测试、部署、运维。

    4 进程隔离

    在微服务架构中,应用程序由多个服务组成,每个服务都是高度自治的独立业务实体,可以运行在独立的进程中,不同的服务能非常容易地部署到不同的主机上,实现高度自治和高度隔离。

    进程的隔离,还能保证服务达到动态扩缩容的能力,业务高峰期自动增加服务资源以提升并发能力,业务低谷期则可自动释放服务资源以节省开销。

    5 混合技术栈和混合部署方式

    团队可以为不同的服务组件使用不同的技术栈和不同的部署方式(公有云、私有云、混合云)。

    6 简化治理

    组件可以彼此独立地进行扩缩容和治理,从而减少了因必须缩放整个应用程序而产生的浪费和成本,因为单个功能可能面临过多的负载。

    7 安全可靠,可维护。

    从架构上对运维提供友好的支撑,在安全、可维护的基础上规范化发布流程,支持数据存储容灾、业务模块隔离、访问权限控制、编码安全检测等。

    Nacos注册中心

    1. Nacos是什么?

    https://nacos.io/

    2.创建项目

    2.1 导入包

    1. <dependency>
    2. <groupId>com.alibaba.cloudgroupId>
    3. <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
    4. dependency>

    2.2 新建bootstrap.properties-(在springboot之前去加载)

    配置地址:server-addr = 192.168.14.45:8848

    spring.cloud.nacos.config.namespace = public

    spring.cloud.nacos.config.group=GROUP2

    版本变动,在同一命名空间可以再分

    spring.application.name = nacos-a

    新建application.properties

    spring.application.name = nacos-a

    logging.level.root = error

    logging.level.com.zxy = debug

    配置的是ID

    2.3 使用 @ RefreshScope 加注解 实时更新

    安装

    单机模式

    https://github.com/alibaba/nacos/releases

    Docker 安装

    docker run --name nacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:1.4.1

    Nacos分布式配置中心





    Nacos Spring Cloud 快速开始

    代码详情见springcloud: springcloud

    Docker + MySql

    新建数据库nacos_config

    将nacos-mysql.sql中的表全部建立

    将application.properties文件拉入docker 中/home/206/nacos/conf/ 并进行数据库连接

    docker run --name nacos -d -p 8848:8848 --privileged=true --restart=always -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /home/206/nacos/logs:/home/nacos/logs -e SPRING_DATASOURCE_PLATFORM=mysql -v /home/206/nacos/conf/application.properties:/home/nacos/conf/application.properties -v /home/206/nacos/data:/home/nacos/data nacos/nacos-server:1.4.1 

    打开浏览器输入地址 

    http://192.168.14.45:8848/nacos/

    完成数据的持久化 

  • 相关阅读:
    Jetson Orin 平台相机调试报四次“err_data” 后stream stop,其它平台工作正常
    MySQL_生产环境中concat用法及功能实现
    【Scala】Scala语法中=>、->、<-与{}、()的使用
    i.MX6ULL驱动开发 | 34 - 基于SPI框架驱动spi lcd(st7789)
    Java项目:springboot+vue大学生健康档案管理系统
    合格论文的七个要素!
    SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!
    从零开始实现lmax-Disruptor队列(六)Disruptor 解决伪共享、消费者优雅停止实现原理解析
    OpenGL - HDR
    vue安装使用swiper
  • 原文地址:https://blog.csdn.net/qq_52963857/article/details/132963656