SpringCloud
SCA中文文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
SCA源码下载:https://github.com/alibaba/spring-cloud-alibaba
转载于:https://my.oschina.net/monroe/blog/3100791
1.架构的演变
单体应用架构
所有功能都集中在一个应用中,项目模块紧密耦合
垂直应用架构
把之前的单体应用拆分成多个应用,以提升效率,比如电商系统可以拆分成:
电商系统,后台系统,CMS系统
优点:项目拆分实现了流量分担,解决了并发问题,而且可以针对不同模块进行优化和水平拓展,同时不同的系统之间不会互相影响,提高容错率
缺点:系统之间互相存在,无法进行相互调用,系统之间互相独立,会造成一部分功能的冗余
分布式架构
冗余部分独立抽取出来做成业务层单独处理
优点:提高代码复用率
缺点:耦合度变高,调用关系复杂,难以维护
SOA架构
用治理中心SOA解决水平拓展,负载均衡,资源调度和治理
优点:解决了服务间调用关系的自动调节
缺点:服务间会有依赖关系,一旦某个环节出错会影响较大(服务雪崩),服务关系复杂,运维,测试部署困难
微服务架构
更加强调服务的彻底拆分,目的就是提高效率,微服务架构中,每个服务必须独立部署同时互不影响,微服务架构更加轻巧,轻量级
优点:服务原子化拆分,独立打包,部署和升级,保证每个微服务清晰的任务划分,利于拓展
缺点:分布式系统开发的技术成本高(容错,分布式事务等),复杂性更高,每个微服务进行分布式独立部署,当进行模块调用的时候,分布式会变的更加麻烦
2.Nacos
服务注册 配置管理
下载安装
下载地址:https://github.com/alibaba/nacos/releases
启动 (E:\Nacos\nacos-server-2.1.1\nacos\bin)
linux:
sh startup.sh -m standalone
windows
startup.cmd -m standalone
账户名密码 nacos/nacos
服务提供者注册
父项目pom
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.13.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zyl</groupId>
<artifactId>SpringCloudAlibabaZYL</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>SpringCloudAlibabaZYL</name>
<description>SpringCloudAlibabaZYL</description>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<modules>
<module>cloudAlibaba-Nacos</module>
</modules>
</project>
子项目pom
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zyl</groupId>
<artifactId>SpringCloudAlibabaZYL</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<artifactId>cloudAlibaba-Nacos</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>cloudAlibaba-Nacos</name>
<description>cloudAlibaba-Nacos</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
</project>
application.properties
server.port=9001
spring.application.name=nacos-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
management.endpoints.web.exposure.include=*
Main类
@SpringBootApplication
@EnableDiscoveryClient
public class CloudAlibabaNacosApplication {
public static void main(String[] args) {
SpringApplication.run(CloudAlibabaNacosApplication.class, args);
}
@RestController
public class EchoController {
@GetMapping(value = "/echo/{string}")
public String echo(@PathVariable String string) {
return "Hello Nacos Discovery " + string;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了