SpringCloud系列-微服务概念与springcloud

边学边做边总结,对整个springcloud知识体系进行一个梳理。如果有写的不对的或者更加好的意见请回复。

微服务与微服务架构

项目开发的进化顺序

传统项目

传统的项目一般都是单应用,所有的功能都在一个项目里面,即便是做了mvc的设计,但是缺点其实很明显,业务之间可能会相互影响,容易崩溃或者阻塞导致服务不可用。但是优点是功能全面,适合小团队开发。

分布式

对单应用的一个进化,将独立功能拆分成一个个小的项目,降低了项目之间的耦合。业务稍微复杂一些的互联网公司,一般也都使用分布式部署项目。

SOA

对分布式的进化,讲求的是面向服务的开发,将公共的业务服务提取成一个小小的项目,相互之间使用rpc通信。

微服务

微服务是将soa更加的细分,但是思路也是面向服务化。强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用, 狭意的看,可以看作Eclipse里面的一个个微服务工程/或者Module

soa和微服务的一些讲解:
https://www.cnblogs.com/fengzheng/p/5847441.html
https://blog.youkuaiyun.com/zpoison/article/details/80729052

微服务架构

微服务架构:是⼀种架构模式,它提倡将单⼀应⽤程序划分成⼀组⼩的服务,服务之间互相协调、互相配合,为⽤户提供最终价值。每个服务运⾏在其 独⽴的进程中 ,服务与服务间采⽤轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进⾏构建,并且能够被独⽴的部署到⽣产环境、类⽣产环境等。另外, 应当尽量避免统⼀的、集中式的服务管理机制, 对具体的⼀个服务⽽⾔,应根据业务上下⽂,选择合适的语⾔、⼯具对其进⾏构建。

从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。

技术栈

服务模块技术
服务开发springboot,springmvc,spring
服务配置与管理Netflix公司的Archaius、阿里的Diamond等
服务注册与发现Eureka【貌似要闭源,不影响使用】、Consul、Zookeeper等
服务调用Rest、RPC、gRPC
服务熔断器Hystrix、Envoy等
负载均衡Ribbon、Nginx等
服务接口调用(客户端调用服务的简化工具)Feign等
消息队列Kafka、RabbitMQ、ActiveMQ等
服务配置中心管理SpringCloudConfig、Chef等
服务路由(API网关)Zuul等
服务监控Zabbix、Nagios、Metrics、Spectator等
全链路追踪Zipkin,Brave、Dapper等
服务部署Docker、OpenStack、Kubernetes等
数据流操作开发包SpringCloud Stream(封装与Redis,Rabbit、Kafka等发送接收消息)
事件消息总线Spring Cloud Bus

SpringCloud是啥

SpringCloud分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。
官网:https://springcloud.cc/

和springboot的关系

SpringBoot可以离开SpringCloud独立使用开发项目, 但是SpringCloud离不开SpringBoot ,属于依赖的关系.

SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。

Dubbo,Istio,springcloud

看看这篇:https://segmentfault.com/a/1190000010953144

参考资料

开发文档:
https://springcloud.cc/spring-cloud-netflix.html
https://springcloud.cc/spring-cloud-dalston.html

总结

不能为了使用而使用,适合公司当前发展的技术选型才是好的。

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值