所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

Java开发大互联网-微服务服务注册发现与如何实现容器部署?

发布时间:2020-04-15 16:27:13

资讯分类:java  容器  部署  注册  服务  地址  注册
Java开发大互联网-微服务服务注册发现与如何实现容器部署?

服务发现

先了解一下什么是服务发现。

传统的接口调用,都是客户端程序把服务端的地址记录下来,然后根据接口地址进行服务调用。如果在不同的测试环境上,服务地址有可能是不一样的:

测试环境:http://xxx.uat.com/server/query

生产环境:http://xxx.prd.com/server/query

那么客户端就需要小心翼翼的维护好这些配置,否则就会出现问题。而且如果服务越来越多,都是集群化部署,那么这个配置维护起来很困难。


微服务中的解决方案就是使用服务注册和服务发现。


服务端启动之后,主动的把自己的接口地址等级到一个地方,这个地方叫做服务中心,登记的时候保存<服务名称:服务地址>,这个服务地址也可以是多个。

那么客户端需要调用服务端接口的时候,就去服务中心按照服务名称查找,找到了之后就可以知道现在的服务接口地址是什么,再去进行调用。

服务端登记的过程叫做服务注册,客户端查找的过程叫做服务发现。


微服务注册发现的方案

用过Dubbo和Spring Cloud,就分别说说他们各自的解决方案。

  • Dubbo:注册中心可以用Zookepper/Redis/简单注册中心这几种,甚至可以基于数据库实现注册中心。如果开发能力没那么强,建议使用Zookepper。

  • Spring Cloud:这个就简单了,直接使用Eureka就好了,它本身就是Spring Cloud体系中的一部分。


容器

再说到容器,现在最火的就是docker了吧。

不过我们公司推docker一直没推起来,还用的是虚拟机,近今年开始有私有云。

Java语言号称一次编译,到处运行。Java虚拟机解决了跨平台的问题。只要安装了Java虚拟机,就可以执行Java代码。

那么Docker就是一次封装,到处运行。Docker解决了环境的问题。只要安装了Docker平台,就可以跑Docker包。这里说的封装是什么,就是你让一个项目跑起来所需要的所有的东西。


希望我的回答可以帮助到你!

Java开发大互联网-微服务服务注册发现与如何实现容器部署?

微服务技术现在正炙手可热,因为使用微服务让系统的安全性,稳定性得以保证!

什么是微服务?区别于原来的单一系统,微服务是通过服务拆分,分布在不同的服务器上,并以一定的通信方式传递数据,实现各服务之间的解耦合的一套分布式架构!

既然分布在不同的服务器上,服务间通信的问题就是不可避免的问题,引进中间组件来维护服务是必不可缺的选择!

服务注册与发现有多种方式,比如dubbo使用zk,springcloud使用eureka等!下面就以eureka为例:

eureka分为server和client,将client放在业务服务代码中定时向eureka server注册服务,在server端统一进行维护一份服务列表,等到服务消费方调用服务的时候,先经过服务注册中心,找到相应服务实现调用!

springcloud项目中具体实现如下:
1,搭建服务注册中心服务端:加入eureka server依赖,在启动类中加入@EnableEurekaServer注解,配置文件加入端口,是否注册自己等,启动服务类,访问localhost:8080/可以看到服务列表信息!

2,代码端搭建注册中心客户端:加入eureka client 依赖,启动类中加入@EnableClientSetver注解,配置文件加入相应的注册信息,启动服务,在服务端的服务列表中查看是否注册成功!

不仅如此,注册中心的服务端还可以使用多台机器进行负载均衡,实现多个服务端之间的相互注册,防止单点宕机引起服务停止!



如何使用docker容器?

1,安装docker!

2,在springcloud项目中根目录创建dockerfile文件,指定jdk版本,启动脚本等!

3,编译镜像:docker build,注意指定路径!

4,运行镜像:docker run!

5,使用ip地址和端口验证服务部署成功!

JAVA方面的更多技术分享,敬请关注。。。

Java开发大互联网-微服务服务注册发现与如何实现容器部署?

不知道.net体系有没有好的服务治理框架

留言与评论(共有 0 条评论)
   
验证码:
Top