微服务 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(Google的)    
服务熔断    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)
支持的微服务条目多

相关推荐