| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 系统集成开发复习 -> 正文阅读 |
|
[Java知识库]系统集成开发复习 |
1、系统集成基础系统集成基本含义系统集成( system integration):通常是指将软件、硬件与通信技术组合起来为用户解决信息处理问题的业务,集成的各个分离部分原本就是一个个独立的系统,集成后的整体的各部分之间能彼此有机地和协调地工作,以发挥整体效益,达到整体优化的目的。 系统集成的主要方案EAI:(Enterprise Application Integration,企业应用整合) SOA: (service-oriented architecture,面向服务的体系结构) ESB 微服务软件系统架构: SOA的演进 功能分解:将单体应用从功能上分解为多个独立的模块(微服务)单一职责:一个微服务应该都是单一职责的,这才是“微”的体现,一个微服务解决一个业务问题(注意是一个业务问题而不是一个接口)。 面向服务:将自己的业务能力封装并对外提供服务,这是继承SOA的核心思想,一个微服务本身也可能使用到其它微服务的能力。 2、Springboot相关开箱即用的项目框架(Spring Initializer/start.spring.io) 约定大于配置:零配置,无冗余代码生成和XML 强制配置 Starter:按照功能模块的粒度把该功能所用到的依赖包都包含到项目中,减少依赖配置和版本冲突。提供一系列大型项目常用的非功能性特征,如嵌入式服务器、安全性、度量、运行状况检查、外部化配置等。 Spring Boot 不是Spring 的替代者,而是为使用 Spring 做好各种产品级准备 Springboot项目开发的基本步骤1.创建maven项目 Springboot项目的特点与基本结构SpringBoot所具备的特征有:Springboot是一个微服务框架,延续了spring框架的核心思想IOC和AOP,简化了应用的开发和部署。Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题—>习惯大于约定。 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs; Springboot项目基本结构─main │ └─resources
Springboot与Spring的关系Spring包含了SpringMVC,而SpringBoot又包含了Spring或者说是在Spring的基础上做得一个扩展。 Spring Boot 对比Spring的一些优点包括: 提供嵌入式容器支持 Swagger的作用及配置要求Swagger 是一个规范和完整的框架,用于生成、描述、测试和可视化 RESTful 风格的 Web 服务。 接口的文档在线自动生成功能测试 前后端开发人员联系的纽带 Swagger配置1.pom.xml中添加依赖 2.新建config包,其中新建SwaggerConfig类,类上注解@Configuration、@EnableSwagger2
Swagger注解
多模块Maven项目结构随着单体应用功能的增加和细化,复杂度迅速增加 使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便 拆分方式横向拆分按代码层拆分(web层-业务层-数据层)适合单体项目多模块模块复用并行异步构建 纵向拆分按子系统拆分(用户子系统-订单子系统-商品子系统-评论子系统-物流子系统) 粒度更大功能插拔子系统可作独立项目微服务做准备 3、容器与Docker计算虚拟化的发展过程应用环境——远古时代 应用环境——虚拟机时代 应用环境——容器时代 容器技术的基本概念
Docker镜像与容器Docker和容器 Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎, 基于go语言并遵从Apache2.0协议开源, 托管在github上. ####Docker镜像 Docker镜像是一个特殊的文件系统(UnionFS,一层一层的系统文件),提供容器运行时所需的程序、库、资源、配置等文件,另外还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像是一个静态的概念,不包含任何动态数据,其内容在构建之后也不会被改变。 Docker容器通过Docker引擎运行Docker镜像创建该镜像的容器 容器是镜像的实例,对应系统中的一个实际运行的进程 相对于镜像来说容器是动态的,容器在启动的时候创建了一层可写层次作为最上层 Docker常用命令
用Docker打包Springboot项目创建Springboot项目并完成功能 Maven构建打jar包
编写Dockerfile制作镜像,上传镜像仓库
容器部署
项目测试 4、微服务微服务架构微服务架构(Microservice Architect)是一种架构模式。它提倡将单块架构的应用划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(RestTemplate、feign)。每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具进行搭建。 单体应用与微服务应用的比较
微服务的优点:
微服务技术框架Dubbo(RPC)
Spring Cloud(REST)Spring Cloud完全基于Spring Boot,是一个非常新的项目,2016年推出1.0的release版本,目前Github上更新速度很快. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用.它们将在任何分布式环境中工作,包括开发人员自己的笔记本电脑,裸物理机的数据中心,和像Cloud Foundry云管理平台。 Springcloud微服务架构(REST)
Spring Cloud 子项目分别覆盖了微服务架构下的众多部件,服务治理只是其中的一个方面。 Dubbo 只是实现了服务治理,不过提供了各种 Filter,对于上述中“无”的要素,可以通过扩展 Filter 来完善 从核心要素来看,Spring Cloud 更胜一筹,在开发过程中只要整合 Spring Cloud 的子项目就可以顺利的完成各种组件的融合,而 Dubbo 却需要通过实现各种 Filter 来做定制,开发成本以及技术难度略高。 微服务应用的基本结构与核心组件架构分解说明
五大组件 1.Nacos、Eureka:注册中心 2.Gateway、Zuul:服务网关 3.Ribbon:负载均衡 4.Feign:服务调用(微服务间通信) 5.Hystix:熔断器 5、Dubbo&SpringCloudRPCRPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。那么我们至少从这样的描述中挖掘出几个要点:
Dubbo架构的理解
##Zookeeper的作用 ZooKeeper是一个开源的分布式协调服务。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 ZooKeeper是一个典型的分布式数据一致性的解决方案。分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能 Zookeeper 它提供了配置管理、分布式锁、集群服务等功能。在大数据领域中kafka、Hbase都是使用Zookeeper作为分布式协调服务,来管理集群状态的。知名的Rpc框架Dubbo也是用Zookeeper作为配置管理组件的。 1、集群管理 2、分布式锁 3、配置管理 ##Dubbo应用中的关键注解及作用
##Dubbo微服务的开发部署与测试 创建一个项目
我们现实的开发中,往往是一个服务既充当服务提供者角色,又充当服务消费者的角色。所以,每个服务都会有一个两个模块, 引入依赖创建服务提供者定义 服务间的交互协议(契约/规范)其实就是定义服务间的
实现服务提供者的业务逻辑
对外提供服务创建服务消费者在服务消费者的测试中注入提供者服务 消费逻辑
##Springboot与Springcloud的关系
##SpringCloud核心组件与功能
##SpringCloud应用中关键注解与作用
6、OpenAPIRestful基本概念Restful架构,是面向资源的架构:
HTTP动词七个HTTP动词: GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS表示对资源的一组操作
Restful最佳实践7、WebServiceWebService的基本概念Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序 WebService的用法7、WebServiceWebService的基本概念Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序 WebService的用法https://blog.51cto.com/u_14612575/2740388 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:43:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |