什么是微服务?

一、背景介绍:

传统的it架构的缺陷:

使用传统的整体式架构(Monolithic Architecture)应用开发系统,如CRM、ERP等大型应用,随着新需求的不断增加,企业更新和修复大型整体式应用变得越来越困难;

随着移动互联网的发展,企业被迫将其应用迁移至现代化UI界面架构以便能兼容移动设备,这要求企业能实现应用功能的快速上线;

许多企业在SOA投资中得到的回报有限,SOA可以通过标准化服务接口实现能力的重用,但对于快速变化的需求,受到整体式应用的限制,有时候显得力不从心;

二、什么是微服务?

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程。

三、微服务中的spring-cloud

Spring Cloud是一个相对比较新的微服务框架,2016n年推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。

Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全居琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

三、什么是Eureak?

Eureak的结构特点

1. 是纯正的 servlet 应用,需构建成war包部署

2. 使用了 Jersey 框架实现自身的 RESTful HTTP接口

3. peer之间的同步与服务的注册全部通过 HTTP 协议实现

4. 定时任务(发送心跳、定时清理过期服务、节点同步等)通过 JDK 自带的 Timer 实现

5. 内存缓存使用Google的guava包实现

四、实战


项目结构如下


首先创建moduel


moudel里面创建服务:


配置application.yml


完成运行DemoApplication启动服务

结果如图:


界面如下,Application为空说明没有注册service。

接下来我们编写service-client

同样创建model


编写配置文件:


使用简单controller编写,告诉这个是Client端


启动服务

启动成功界面如图:


查看我们的server:


这里已经注册了我们的服务。说明服务的注册与获取成功了。


接下来使用ribbon+restTemplate实现负载均衡:

复制一个client,然后修改端口。


方便等会测试负载均衡

创建moduel-ribbon


结构如上

首先配置application.yml


然后在application里面加载实现负载均衡的RestTemplate

编写service和controller实现调用负载均衡


完成编写,启动8632的service,启动ribbon,使用http:localhost:8634/lzn?name=lzn调用,刷新发现结果为8632、8633端口服务调用平均。

这只是一个简单Eureka的调用。cloud有很多我们需要的可以学习的服务。

PPT:点击打开链接

视频:点击打开链接









猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/80204709