Spring Cloud Alibaba

2023-09-18 11:55:05

单体应用

优点:

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 导入包

  <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

     </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/

完成数据的持久化 

更多推荐

【CCF】第30次csp认证——202305-1重复局面

202305-1重复局面:问题描述国际象棋每一个局面可以用大小为8×8的字符数组来表示,其中每一位对应棋盘上的一个格子。六种棋子王、后、车、象、马、兵分别用字母k、q、r、b、n、p表示,其中大写字母对应白方、小写字母对应黑方。棋盘上无棋子处用字符*表示。两个字符数组的每一位均相同则说明对应同一局面。现已按上述方式整理

Vue构建SPA项目实现路由

目录前言一、VueCLI简介1.什么是VueCLI2.VueCLI的特点二、SPA项目搭建1.安装VueCLI2.使用脚手架vue-cli来构建项目​编辑3.项目结构说明4.什么是*.vue文件三、基于SPA完成路由并嵌套路由1.基于SPA完成路由1.1在src下的components创建自定义组件。1.2.定义路由与

java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统

鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统1.项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要求。二、企业通过

TikTok的全球影响:跨文化、跨国界的短视频文化

随着TikTok的崛起,短视频文化正在以前所未有的方式迅速传播,跨足了不同国家和文化的边界。本文将探讨TikTok的全球影响,以及它如何促进了跨文化交流和文化融合。短视频:跨越语言和文化的沟通工具TikTok的短视频格式具有独特的跨文化传播能力。它通过简洁而生动的方式,允许用户在不同语言背景下进行沟通。这种简单而直接的

LeetCode 盛最多水的容器 双指针

原题链接:力扣(LeetCode)官网-全球极客挚爱的技术成长平台题面:给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例1:输入:[1,8

uniapp——ios证书申请——详细步骤+遇到的坑——技能提升

三年前,我曾经写过uniapp的程序,时隔三年,又遇到了uniapp的需求,之前没有自行申请ios证书,现在终于要自己生成证书了。。。是福不是祸,是祸躲不过。uniapp生成ios证书的详细步骤uniapp对接unipush的操作步骤链接1.生成`ios`证书1.1准备环境——略过1.2登录IOSDevCenter——

01. pring Cloud微服务系列之 包版本号约定

SpringCloud微服务系列文章,点击上方合集↑1.Java8目前市场上最常用的是Java8,而Java17则代表着未来的发展趋势。虽然SpringBoot3已经发布,但它要求最低版本为Java17。然而,考虑到目前很多开发工具库还没有完全适配Java17,因此在生产环境中使用可能会遇到一些问题和不兼容的情况。所以

U盘有病毒插上电脑会感染吗?了解下U盘的病毒传播机制

U盘作为一种常见的移动存储设备,我们会经常使用它来传输和存储重要的文件。然而,有时可能会遇到文件被当作病毒误删除的情况,这给我们带来了不便和焦虑。好在,这里将向您介绍一些简单而有效的方法,帮助您恢复被误删除的U盘文件,并探讨U盘的病毒传播机制,解答“U盘有病毒插上电脑会感染吗”的疑惑。▌案例分享“我安装了多个防病毒软件

python+nodejs+php+springboot+vue校园在线拍卖竞拍系统

要想实现在线拍卖系统的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的用户信息,并由此分析得出的关联信息等大量的数据都由数据库管理。用户功能模块5.1首页用户登录进入在线拍卖系统可以查看首页、个人中心、历史竞拍管理、竞拍订单管理、留言板管理等内容,如图5.2历史竞拍管理在历史竞拍管理页面可以查看商品名称;

SpringBoot详解

文章目录SpringBoot的特点Spring,SpringBoot的区别SpringBoot常用注解标签SpringBoot概述SpringBoot简单Demo搭建读取配置文件的内容SpringBoot自动配置Condition自定义beanSpringBoot常用注解原理@EnableAutoConfigurati

Universal Robot (UR3)与USB摄像头和电磁夹持器结合的ROS拾取和放置硬件实施详细教程:从连接到实践

第一部分:连接UniversalRobot(UR3)到PC1.将UniversalRobot(UR3)连接到PC(Ubuntu16.04)在实现机器人的自动化任务之前,首先需要确保机器人与计算机之间的连接是稳定的。在这一部分,我们将详细介绍如何将UniversalRobot(UR3)连接到运行Ubuntu16.04的P

热文推荐