微服务 springcloud

微服务

微服务架构:是一种架构模式,将一个应用程序划分为一组小的服务,每个服务运行在自己单独的进程中,服务之间通过HTTP的restful API相互沟通,相互协作、相互配合,为用户提供最终服务。强调避免集中式、统一的服务管理机制。

微服务·:是一个个微小的服务,强调的是服务的大小,狭义地说就是idea中一个个的model。将一个应用程序拆分后的各个独立模块。


微服务就好比医院中一个个独立的科室,牙科、骨科、外科等。而这些独立的科室就构成了医院,这就是微服务架构。

1

为什么有微服务?


传统的开发,将一个应用程序放在一个项目里面,打成一个war包,所有的模块,例如:订单、商品、交易、库存等,都在一个项目里面,这种服务称为巨石服务。All in one


这种架构一旦某个模块出问题,整个项目就会受到影响,甚至崩溃


分布式: 将一个服务应用,拆分为各个模块/服务,将模块独立出来,单独开发。各自有各自微小的进程,让专业的人,专业的模块做专业的事,让分工更加明确。各个模块独立部署


这种架构,服务之间不会影响,哪个模块出问题,受影响的只有那个模块,其它模块仍然可以工作。


微服务的作用

去耦合,各自的服务模块可以拥有自己的数据库,通过springcloudconfig,进行配置共同协作,各个模块可以单独的启动和销毁,类似于进程的概念。


微服务的优缺点

优点: 微服务让分工更加明确,开发效率提高。松耦合,代码更容易理解,部署灵活,可以接纳新的技术,扩展性好。

缺点: 开发人员要理解分布式系统的复杂性,随着服务的增多,运维难度压力增大。微服务之间的通信成本,依赖部署,数据的一致性如何保证,庞大的应用如何集成测试,如何监控性能…


微服务技术栈

微服务技术栈: 多种技术的集合体。


 我们在讨论一个分布式微服务的架构的话,它需要有哪些维度


一个分布式微服务的架构 E时代下的数字化生活

服务治理(Dubbo等) 手机(HUAWEI等)

服务注册(Zookeeper等) 电脑(lenovo等)

服务调用 路由器

服务负载均衡(nginx) 充电宝

服务监控 智能音箱

…… ……

SpringCloud 提供以上技术的集合 小米科技都可以提供以上服务

微服务技术栈有哪些 微服务框架案例:www.b123.com


微服务条目 落地技术 备注

服务开发 Springboot、Spring、SpringMVC

服务配置与管理 Netfix公司的Archaius、阿里的Diamond

服务注册与发现 Eureka、Consul、Zookeeper等

服务调用 Rest、RPC、gRPC 

服务熔断 Hystrix、Envoy等

负-载-均-衡 Ribbon、Nginx等

服务接口调用(客户端调用服务的简化工具) Feign等

消息队列 Kafka、RabbitMQ、ActiveMQ等

服务配置中心管理 SpringCloudConfig、Chef等

服务路由(API网关) Zuui等

服务监控 Zabbix、Nagios、Metrics、Spectator等

全链路追踪 Zipkin、Brave、Dapper等

服务部署 Docker、OpenStack、Kubernetes等

数据流操作开发包 SpringCloud Stream(封装与Redis、Rabbit、Kafka等发送接收消息)

事件消息总线 SpringCloud Bus

为什么选SpringCloud

与其它分布式微服务框架进行对比,它社区活跃度高,阿里的Dubbo已经五年没有维护了,现在HSF(High Speed Framework)
支持的微服务条目多


猜你喜欢

转载自blog.51cto.com/14558453/2448426