微服务:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。
优点
测试容易
可伸缩性强
可靠性强
跨语言程度会更加灵活
团队协作容易
系统迭代容易
缺点
运维成本过高,部署数量较多
接口兼容多版本
分布式系统的复杂性
分布式事务
微服务架构:
nginx:
对外统一入口,根据url将请求分发到不同微服务,用ip:port区分不同的微服务。
也会直接处理一些静态资源的访问,本身就是web服务器。
springboot+dubbo:
springboot是目前流行的开发web服务的框架(jsp,ejb,ssh这些框架过于老旧),它和微服务没有必然联系,但它结合dubbo可以开发微服务,要求就是springboot工程要importdubbo.jar或者使用maven引入dubbo。配置dubbo-application.xml,里面写好zookeeper服务地址端口以及提供者和消费者要注册的接口方法。
zookeeper:
springboot需要dubbo,而dubbo推荐的服务注册中心是zookeeper,相当于一个公告板,各个微服务都可以看到上面注册的提供者和消费者的接口方法
DB:
MySQLOracle
redis:
缓存session数据,和其它有必要缓存的业务数据
tomcat+dubbo-admin:
dubbo管理系统,用于监控和排查故障,部署在tomcat下,可以在浏览器上查看各个微服务的运行情况,查看某个方法是否可以被正常调用。
Spring Cloud一些常用组件:
微服务和分布式的区别:
分布式架构是分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),从各种分布式系统平台产生的背景和在软件开发中应用的情况来探讨它们的主要异同。
微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
分布式服务架构强调的是服务化以及服务的分散化,微服务则更强调服务的专业化和精细分工;
分布式:分散压力。微服务:分散能力。