1、新建一个springboot项目,并添加如下依赖:
2、配置application.yml文件
server:
port: 8091
eureka:
client:
service-url:
defaultZone: http://localhost:8090/eureka/ #配置Eureka的服务地址
instance:
appname: userClient #配置微服务名称
3、在启动类上加@EnableEurekaClient或者@EnableDiscoveryClient
@SpringBootApplication
@EnableEurekaClient
public class ClientTestApplication {
public static void main(String[] args) {
SpringApplication.run(ClientTestApplication.class, args);
}
}
说明:@EnableEurekaClient注解仅是支持Eureka作为服务发现组件,而@EnableDiscoveryClient更加通用一些,除了支持Eureka,可以支持其他的服务发现组件(如:consul、etcd等)
4、访问Eureka的服务地址,就可以看到新增的实例了
下面简单介绍下微服务
一、什么是微服务?
Martin Fowler是这样定义的。微服务架构风格这种开发方式,是以开发一组小型服务的方式来开发一个独立的应用系统。其中每一个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来互相通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来进行编写,并且可以使用不同的数据存储技术。
二、微服务的出现是为了解决什么问题?
很好的解决的单体应用(一个归档包中涵盖了所有功能)中存在的缺点,主要缺点如下:
1、复杂性逐渐变高
2、技术债务逐渐上升(简单的说就是开发人员的流动所带来的问题)
3、部署速度逐渐变慢
4、阻碍技术创新(个人觉得这个是最大的缺点)
5、无法按需伸缩(一些被高频访问模块对硬件的要求决定了整个系统的硬件水平,在很多时候会造成资源的浪费)
三、微服务的优点
1、易于开发和维护
2、启动较快
3、局部修改容易部署
4、技术栈不受限
5、按需伸缩
四、微服务带来的挑战
1、运维要求高
2、分布式的复杂性决定了开发人员必须要有较好的开发经验
3、接口调整成本高(微服务之间互相通信)
4、重复劳动(很多的工具类或者通用的持久层的操作重复了)